我已经用我的代码创建了一个jsfiddle - 而不是CSS部分只有用于演示的PHP逻辑。
我想在zip字段中输入一个邮政编码 - 然后一旦点击该按钮就会查询地理编码googlemaps脚本并返回一个json对象 - 我只是在将此对象返回到表单字段时遇到问题。我可以在控制台日志中看到json - 但是在将它传回视图时我做错了。有什么想法吗?
这是js文件
$('form').on('click','#geocode',function(event) {
event.preventDefault();
var zip = $('#geocode_field').val();
$.ajax({
type: "GET",
url: "/test/gmaps",
data: { zip: zip},
dataType: "json",
cache: true,
success: function(data){
console.log(data.street);
}
});
});
<form>
<label>Zip</label>
<input type="text" id="geocode_field" name="zip" /><button id="geocode">Search</button>
<label>Street 1</label>
<input type="text" id="street1" name="street1" />
<label>Street 2</label>
<input type="text" id="street2" name="street2" />
<label>Town</label>
<input type="text" id="town" name="town" />
<label>County</label>
<input type="text" id="county" name="county" />
</form>
答案 0 :(得分:1)
您应该将dataType
设置为json
而不是jsonp
,因为您已拨打自己的域名。 jsonp用于跨域ajax,它还需要差异返回格式。
dataType: "json",
希望这有帮助
答案 1 :(得分:1)
使用$.ajax()
方法代替$.post()
方法。然后它会更新你的观点部分。
尝试这样的事情:
$.post("/test/gmaps", { data: zip}, function(data) {
for (var key in data) {
$('#fetchdata').html(data.street);
}}, "json");
这里,#fetchdata
是要接收数据的id,它可以是span,输入框等。在返回值的查询中,以json_encoded格式返回它。如:
function some(){
//your query
$data_to_return[] = something;
echo json_encode($data_to_return);
}
您可以详细了解$.post()
方法 HERE
答案 2 :(得分:0)
怀疑它......太早了。 :(
$('form').on('click','#geocode',function(event) {
event.preventDefault();
var zip = $('#geocode_field').val();
$.ajax({
type: "GET",
url: "/test/gmaps",
data: { zip: zip},
dataType: "json",
cache: true,
success: function(data){
console.log(data.street);
$('#street1').val(data.street);
}
});
});