php - 通过 AJAX 将多个 JSON 对象从 PHP 返回到 jQuery
问题描述
这个问题已经被问过了,但它没有解决我的具体问题。我想要实现的是,每当用户输入密码时,我通过 AJAX 将密码发送到 PHP 并使用该密码返回结果。如果将单个区域映射到特定的密码,那么我的代码就可以工作。但是,如果有多个区域具有相同的密码,那么我的密码就会中断。我尝试了多种方法。我什至试过这个:链接
这是我的代码
$('.input-pc').on('keyup change', function(){
PincodeId = $(this).attr('id');
PincodeVal = $("#" + PincodeId).val();
checkPincodeLength = PincodeVal.length;
if(checkPincodeLength == 6){
$('#' + PincodeId).next().next('.invalid-feedback').html('');
$.ajax({
url: "../../auth/regrequest.php",
type: "POST",
data: 'current_pincode='+PincodeVal,
dataType: 'JSON',
cache: false,
success: function(data){
console.log('pc: '+data);
$.each(data, function(index, val) {
console.log(val);
})
}
});
}else{
$('#' + PincodeId).next().next('.invalid-feedback').html('<span><i class="fa fa-exclamation-circle" aria-hidden="true"></i> Pincode must be of 6 digits</span>');
}
});
我什至尝试删除 dataType 并使用 JSON.parse 解析数据。这也没有奏效。
我的 PHP 代码看起来像这样
if(isset($_POST['current_pincode']) && !empty($_POST['current_pincode'])){
$current_pincode = $_POST['current_pincode'];
$query26 = $dbc->prepare("SELECT a.area_id, a.city_id, a.state_id, b.state_name, c.city_name, d.area_name FROM pincodes a, states b, cities c, areas d WHERE a.pincode_code = ? AND a.state_id = b.state_id AND a.city_id = c.city_id AND a.area_id = d.area_id GROUP BY area_id ORDER BY area_id");
$query26->bindParam(1, $current_pincode);
$query26->execute();
$citystate = '';
$city_id = '';
//$citystatearray = array(
// 'CityState' => array(),
//);
//$i = 0;
//while ($getcitystate = $query26->fetch(PDO::FETCH_ASSOC)){
// $citystatearray['CityState'][$i++] = $getcitystate;
// echo json_encode($citystatearray);
// }
foreach($query26 AS $getcitystate){
// $state_id = $getcitystate['state_id'];
// $state_name = $getcitystate['state_name'];
// $city_id = $getcitystate['city_id'];
// $city_name = $getcitystate['city_name'];
// $area_name = $getcitystate['area_name'];
// $rowCount = $query26->rowCount();
// //$citystate .= $area_name.',';
// //$pct = $getcitystate['pincodetime'];if(count($area_name) == 1){echo 'only one';}else{echo 'more than 1';}
if($rowCount == 1){
// $citystate =
// array(
// 'current_pincode' => $current_pincode,
// 'state_id' => $state_id,
// 'state_name' => $state_name,
// 'city_id' => $city_id,
// 'city_name' => $city_name,
// 'area_name' => $area_name,
// 'rowcount' => $rowCount
// );
}else{
$citystate .=
array(
'current_pincode' => $current_pincode,
'state_id' => $state_id,
'state_name' => $state_name,
'city_id' => $city_id,
'city_name' => $city_name,
'area_name' => array('area_name_inner' => $area_name),
'area_name' => $area_name,
'rowcount' => $rowCount
);
}
//echo $citystate;
}echo json_encode(
array(
'citystate' => $citystate
)); //echo json_encode(
// array(
// 'citystate' => $citystate
// ));//echo $citystate;
//echo $city_id;
// echo $citystate1 = $city_id.','.$rowCount.','.$citystate;
}
我没有删除评论以显示我尝试输出数据但徒劳的不同方式。任何帮助将不胜感激。谢谢!