![](/img/trans.png)
[英]How to get json return value from php by javaScript / jquery?
[英]Pass value from JQUERY to PHP ,and return a JSON
當通過ajax從jquery調用php時,有任何響應。我更改了dataType
並放了json
而不是html
。我認為問題是,因為ajax調用永遠不會觸發php代碼,似乎$_POST['retriveForm']
永遠不會帶來價值。
PHP:
if(isset($_POST["retriveForm"])) {
$data_json =array();
$id = $_POST['retriveForm'];
$sql = "SELECT * FROM mytable WHERE Id = $id";
while ($row = mysqli_fetch_array($db->consulta($sql)) {
$data_json = array('item1' => $row['item1'],'item2' => $row['item2']) ;
}
$data_json['item_array'] = call_a_function_return_array();//this works
echo json_encode($data_json);
}
和jQuery:
$(document.body).on('click', '.edit', function() {
var id = $(this).data('id');
$.ajax({
type: "POST",
url: "is_the_same_page.php",
data: {
retriveForm: id
},
dataType: "json",
success: function(response) {
$('#myForm').find('input').eq(1).val(response.item1);
}
});
});
如果重要的話,代碼都在同一頁上。
由於AJAX代碼位於同一腳本中,因此在這種情況下,請確保您不輸出任何常規HTML。 您的PHP代碼應該在腳本的開始處,然后輸出任何HTML。 並且您應該在回顯JSON之后退出腳本。 否則,您的JSON將與HTML混合在一起,而jQuery將無法解析響應。
另外,您沒有在循環中正確添加到$data_json
。 您每次都覆蓋變量,而不是將其壓入。
<?php
// code here to set up database connection
if(isset($_POST["retriveForm"])) {
$data_json =array();
$id = $_POST['retriveForm'];
$sql = "SELECT * FROM mytable WHERE Id = $id";
while ($row = mysqli_fetch_array($db->consulta($sql)) {
$data_json[] = array('item1' => $row['item1'],'item2' => $row['item2']) ;
}
$data_json['item_array'] = call_a_function_return_array();//this works
echo json_encode($data_json);
exit();
}
?>
<html>
<head>
...
然后在success
函數中,您需要為response
的元素建立索引,因為它是一個數組,而不是單個對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.