PHP Array AJAX请求共享密钥
我有以下SQL查询是通过表单提交中的AJAX服务器请求执行的。它会检查表单POST变量$ product,以便将数据库中的任何关联产品限制为2.我需要能够使用PHP唯一标识来自查询的每个结果,并将它们存储为变量$ product1和$ product2,然后返回这些值不带页面刷新。 为什么PHP SQL查询结果不会自动在关联数组中分配一个唯一键? (见下图)PHP Array AJAX请求共享密钥
$product = $_POST['product'];
$sql_query3 = "Select tbl_mixed_case.related_product
FROM tbl_mixed_case JOIN tbl_product_info
ON tbl_product_info.id = tbl_mixed_case.prod_code_id
AND tbl_product_info.product + ' ' = '$product' LIMIT 2" ;
$result3 = mysqli_query($dbconfig, $sql_query3);
while ($products = mysqli_fetch_array($result3, MYSQL_ASSOC)) {
print_r(array_values($products));
}
尝试以下操作:
$product = $_POST['product'];
$sql_query3 = "Select tbl_mixed_case.related_product
FROM tbl_mixed_case JOIN tbl_product_info
ON tbl_product_info.id = tbl_mixed_case.prod_code_id
AND tbl_product_info.product + ' ' = '$product' LIMIT 2" ;
$result3 = mysqli_query($dbconfig, $sql_query3);
var $dispProd
while ($products = mysqli_fetch_array($result3, MYSQL_ASSOC)) {
$dispProd[] = $products;
}
header('Content-Type: application/json');//add the proper header
echo json_encode(['products'=>$dispProd]);//convert to json
在你的Ajax成功功能
你做到以下几点:
success:function(data) {
$('#product1').val(data.products[0]);//add the first value to a input with the id of product1
$('#product2').val(data.products[1]);
}
我已经包含了AJAX请求和形式输入如下:
function submitdata() {
var product = document.getElementById("product").value;
// Returns successful data submission of associated products
var dataString = 'product=' + product;
// AJAX code to submit form.
$.ajax({
type: "POST",
url: "product.php",
data: 'application/json; charset=utf-8',
cache: false,
success: function(data) {
alert(data);
$('#product1').val(data.products[0]);//add the first value to a input with the id of product1
$('#product2').val(data.products[1]);
}
});
}
<input type="text" value="" placeholder="" class="" id="product1" name="product1" tabindex="-1"/>
<input type="text" value="" placeholder="" class="" id="product2" name="product2" tabindex="-1"/>
感谢madalin的工作。如何将第一个结果作为表单输入中的变量返回? – paynod
查看我的更新回答 – madalinivascu
感谢您的更新。我在var $ dispProd上得到一个解析错误。我用分隔符尝试过; – paynod
'tbl_product_info.product +'''的作用是什么? – madalinivascu
您需要选择您在表格中的唯一标识符(如唯一的ID)。所以,像'SELECT id,field'。然后,将你的'mysqli_fetch_array()'改为'mysqli_fetch_assoc()'和'print_r($ products)'来查看你的数据 – andrew