当我输入邮政编码时,我有api返回城市列表和相关的地理区域 .
例如:
postcode -3000 returns 9 cities and geo zone - A012
postcode -3008 returns 12 cities and geo zone - C01
所以我写了下面的代码 . 输入邮政编码后,它会将城市附加到下拉列表中 . 这很棒
PHP
if($response == NULL || $response < 1 )
{
echo "wrong Postcode";
} else{
foreach ($response as $q)
{
$cty = $q['city'];
$geozone = $q['geozone'];
echo '<option value="'.$cty.'">'.$cty.'</option>';
}
jQuery的
<script type="text/javascript">
$(document).ready(function()
{
$(".postcode").change(function()
{
var dataString = 'postcode='+ id;
$.ajax
({
type: "POST",
url: "load.php",
data: dataString,
cache: false,
success: function(val)
{
$(".city").html(val);
}
});
});
});
</script>
问题是我需要将php中返回的$ geozone附加到输入框中
因为我已经回应了选项值,我可以很容易地追加它
echo '<option value="'.$cty.'">'.$cty.'</option>';
但是如何将 $geozone = $q['geozone'];
返回到我的主页面,以便我可以将它与文本字段一起使用
3 回答
我认为最好从json数据构建select . 尝试更改php这样的事情
这将返回一个带有城市和地理区域的完整响应的json数组,然后您需要使用JS构建表单
这将为您构建表单 . 您必须将此代码调整为json响应,并将.form替换为表单的父选择器 .
我想这样做首先让一个数组返回 . 在索引0处,您连接选项,并在索引1处将隐藏的ipnut中的$ geozone连接起来(如果这很有用) .
现在解析成功
我没有测试,但我已经做过类似的事了 . 希望我的记忆有所帮助 .
您可以像这样在选项标签中使用额外属性 .
这将回应为
并使用jquery的.attr()方法从选项中获取值