2016-07-26 88 views
0

我有以下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)); 
} 

enter image description here

+0

'tbl_product_info.product +'''的作用是什麼? – madalinivascu

+0

您需要選擇您在表格中的唯一標識符(如唯一的ID)。所以,像'SELECT id,field'。然後,將你的'mysqli_fetch_array()'改爲'mysqli_fetch_assoc()'和'print_r($ products)'來查看你的數據 – andrew

回答

1

嘗試以下操作:

$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"/> 
+0

感謝madalin的工作。如何將第一個結果作爲表單輸入中的變量返回? – paynod

+0

查看我的更新回答 – madalinivascu

+0

感謝您的更新。我在var $ dispProd上得到一個解析錯誤。我用分隔符嘗試過; – paynod