我有一个 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>';
}
j查询
<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'];
返回到我的主页,以便我可以将它与文本字段一起使用
最佳答案
我认为最好从 json 数据中构建选择。尝试将 php 更改为这样的东西
if($response == NULL || $response < 1 )
{
echo "wrong Postcode";
} else{
echo json_encode($response);
}
这将返回一个包含城市和地理区域的完整响应的 json 数组,然后您需要使用 JS 构建表单
$.ajax({
type: "POST",
url: "load.php",
data: dataString,
cache: false,
dataType: "json"
success: function(val)
{
options = "";
for(x in val){
options += '<option value="'+val[x].city+'">'+val[x].city+'</option>'
}
$(".city").html(options);
$(".form").append('<input type="text" value="'+val[x].geozone+'">');
}
});
这将为您构建表单。您必须将此代码调整为 json 响应和表单父选择器的 .form。
关于javascript - 从 php 返回多个值到 jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26126270/