我遇到Ajax响应问题。我试图通过mySql数据库中指定的ID号显示属性地址。我发现的问题是,当我将id的值设置为静态例如prop_id = 2
时,就会从db成功检索到地址。但是当我想通过文本框中输入的 prop_id 进行搜索时,我一直收到空值。
html
<td><label for="propertyId">Property Id:</label></td>
<td><input name="p_propertyId" id="propertyId" onClick="suggestion_property_id()" onblur="get_property_address_byid()" size="40"></td> <!--onblur="get_idproperty()"-->
<td><label for="prop_address">Property address:</label></td>
<td><input name="p_address" id="prop_address" value="" size="40" readonly/></td>
AJAX
var $propertyId = $('#propertyId').val();
//alert($propertyId);
$.ajax({
type: 'POST',
url: 'propertyId.php',
data: {
type:'prop_address',
$propertyId:$propertyId,
},
async: true,
dataType: 'text',
success: function(res1){
var results = eval(res1);
document.getElementById('prop_address').value = results[0];
//get_idbooking();
alert($propertyId);
console.log(res1);
},
});
}
php
if($type == 'prop_address'){
$prop_address = "no address";
$propertyId =$_POST['propertyId'];
$propertyId=155;
$properties = get_address_by_propertyid($propertyId);
for($i=0; $i<sizeof($properties); $i++){
$address_prop = str_replace(' ', ' ', $properties[$i]['prop_address']);
if(strpos($propertyId, $address_prop) !== false){
$prop_address = $properties[$i]['propertyId'];
break;
}
}
$res1 = array($address_prop, $propertyId);
echo json_encode($res1);
//echo json_encode($address);
}
答案 0 :(得分:1)
您在Ajax请求中发送的数据似乎是错误的 -
$propertyId:$propertyId,
^^^^^^^^^^^
应该是 -
propertyId:$propertyId,
答案 1 :(得分:0)
请务必使用例如print_r($_POST)
检查服务器端的传入数据。看起来你正在发送:
data: {
type:'prop_address',
$propertyId:$propertyId,
}
但检查
$_POST['propertyId']
我认为他们不匹配。
答案 2 :(得分:0)
在您的ajax块中,您将$propertyId
值作为名称和值传递。因此,如果它是155
,例如,您的数据块实际上会以如下方式发送到服务器:
data: {
type: 'prop_address',
155: 155
}
如果您更新data
块以正确命名propertyId
参数,那么您的php脚本应该选择它。
data: {
type: 'prop_address',
propertyId: $propertyId
}
如果您将来遇到这些问题(脚本可以使用硬编码的值,但是当它从其他地方传递时没有),开始调试的好地方就是拥有php脚本{{1或print_r($_POST)
以确保您通过您认为的参数。
答案 3 :(得分:0)
您将$ propertyId分配给错误的密钥:
应该是:
...
data: {
type:'prop_address',
propertyId: $propertyId
// $propertyId: $propertyId
},
...