Php Ajax工作不正常
使用ajax php输入pincode时查找位置。但它不能正常工作。当我们输入每个pincode时,pincode被选中,然后显示该位置的结果Php Ajax工作不正常,php,ajax,Php,Ajax,使用ajax php输入pincode时查找位置。但它不能正常工作。当我们输入每个pincode时,pincode被选中,然后显示该位置的结果 <label for="pincode">Pin-Code:</label> <input name="pincode" type="text" class="text" id="pincode" /> <div id="section1"></div> Pin码: 我将此
<label for="pincode">Pin-Code:</label>
<input name="pincode" type="text" class="text" id="pincode" />
<div id="section1"></div>
Pin码:
我将此部分设置为输入字段
<script>
$(document).ready(function() {
$('#pincode').keyup(function() {
//ajax request
$.ajax({
url: "pincode_check.php",
data: {
'pincode' : $('#pincode').val()
},
dataType: 'json',
success: function(data) { console.log(data.success);
if(data.success){
$.each(data.results[0].address_components, function(index, val){
console.log(index+"::"+val.long_name);
$('#section1').append( val.long_name+'<br>');
});
}
},
});
});
});
</script>
$(文档).ready(函数(){
$('#pincode').keyup(函数(){
//ajax请求
$.ajax({
url:“pincode_check.php”,
数据:{
'pincode':$('#pincode').val()
},
数据类型:“json”,
success:function(data){console.log(data.success);
if(data.success){
$.each(data.results[0]。地址\组件,函数(index,val){
console.log(index+“:”+val.long_name);
$(“#section1')。追加(val.long_name+”
);
});
}
},
});
});
});
这是ajax部分,用于将数据发送到pincode_check.php。
我正在做pincode_check.php如下所示。这里传递$pincode变量中的值retrive,然后使用maps.google.com查找该位置的逻辑属性。然后找到相应的位置。该地名显示在表单字段下方。但它不能正常工作
<?php
$pincode=$_REQUEST['pincode'];
$geocode=file_get_contents('http://maps.google.com/maps/api/geocode/json?address='.$pincode.'&sensor=false');
$response= json_decode($geocode); //Store values in variable
$lat = $response->results[0]->geometry->location->lat; //Returns Latitude
$long = $response->results[0]->geometry->location->lng; // Returns Longitude
$geocode=file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?latlng='.$lat.','.$long.'&sensor=false');
$data= json_decode($geocode);
if($data==true)
{ // Check if address is available or not
$data->results[0]->formatted_address ;
$data->success=true;
echo json_encode($data);
}
else {
$data->success= false;
echo json_encode($data);
}
?>
试试这个,在ajax响应中
成功
对象丢失。我已经重写了代码
另外,pincode_check.php
if($data==true)
{ // Check if address is available or not
$data->result[0]->formatted_address ;
$data->success=true;
echo json_encode($data);
}
else {
$data->success= false;
echo json_encode($data);
}
在HTML中:应该是(删除#
在HTML id元素中)
而不是
<div id="#section1"></div>
更新:
<div id="section1"></div>
<script>
$(document).ready(function() {
$('#pincode').keyup(function() {
//ajax request
$.ajax({
url: "pincode_check.php",
data: {
'pincode' : $('#pincode').val()
},
dataType: 'json',
success: function(data) { console.log(data.success);
if(data.success){
$.each(data.results[0].address_components, function(index, val){
console.log(index+"::"+val.long_name);
$('#section1').append( val.long_name+'<br>');
});
}
},
});
});
});
</script>
$(文档).ready(函数(){
$('#pincode').keyup(函数(){
//ajax请求
$.ajax({
url:“pincode_check.php”,
数据:{
'pincode':$('#pincode').val()
},
数据类型:“json”,
success:function(data){console.log(data.success);
if(data.success){
$.each(data.results[0]。地址\组件,函数(index,val){
console.log(index+“:”+val.long_name);
$(“#section1')。追加(val.long_name+”
);
});
}
},
});
});
});
HTML:
<label for="pincode">Pin-Code:</label>
<input name="pincode" type="text" class="text" id="pincode" />
<div id="section1"></div>
Pin码:
PHP代码
<?php
$pincode=$_REQUEST['pincode'];
$geocode=file_get_contents('http://maps.google.com/maps/api/geocode/json?address='.$pincode.'&sensor=false');
$response= json_decode($geocode); //Store values in variable
$lat = $response->results[0]->geometry->location->lat; //Returns Latitude
$long = $response->results[0]->geometry->location->lng; // Returns Longitude
$geocode=file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?latlng='.$lat.','.$long.'&sensor=false');
$data= json_decode($geocode);
if($data==true)
{ // Check if address is available or not
$data->result[0]->formatted_address ;
$data->success=true;
echo json_encode($data);
}
else {
$data->success= false;
echo json_encode($data);
}
?>
调试脚本
您是否正在$pincode变量中获取数据
var_dump($pincode);
我更喜欢在ajax请求中使用已定义的方法,如post:
$.ajax({
url: "pincode_check.php",
method: 'POST'
data: {
'pincode' : $('#pincode').val()
},
dataType: 'json',
success: function(data) {
if(data.success ==true){
$('#section1').html(data.address_components);
}
},
});
您的成功函数已经有响应,无需使用条件:
if(data.success ==true){
$('#section1').html(data.address_components);
}
尝试对其进行调试,以了解您接收到的数据:
success: function(data) {
console.log(data);
}
},
试试这个,它有一个现成的处理程序
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#pincode').live('change', function() {
//ajax request
$.ajax({
url: "pincode_check.php",
data: {
'pincode' : $('#pincode').val()
},
dataType: 'json',
success: function(data) {
if(data.success ==true){
$('#section1').html(data.address_components);
}
},
});
});
});
</script>
$(文档).ready(函数(){
$('#pincode').live('change',function()){
//ajax请求
$.ajax({
url:“pincode_check.php”,
数据:{
'pincode':$('#pincode').val()
},
数据类型:“json”,
成功:功能(数据){
if(data.success==true){
$('#section1').html(data.address_组件);
}
},
});
});
});
如果使用jQuery 1.7+
,请在上使用而不是live
,还有一件事需要更改:--将
替换为
…因为他正在使用live
,我认为它将在就绪处理程序之外工作。我从位置结果中得到响应,但结果不会显示在输入字段下面。现在,我已经显示了long_名称,您可以替换相应的对象。在您的输入字段中,只需键入aa
,我就得到了对该字母的一些响应。但是,文本下方的值可能会显示出来,但不会被拒绝。只需知道,您是否在文本字段下方得到响应?在php脚本中调试$data变量。您使用的条件:if($data==true)不正确$地理编码不包含true。file_get_contents返回读取数据,失败时返回FALSE。