使用AJAX从SQL查询返回多个PHP变量

时间:2016-11-08 19:28:34

标签: php arrays json ajax

我尝试使用AJAX将数据发送到PHP页面(查询数据库)并返回特定值。然后我会显示结果。

我找到了几个关于如何使用AJAX传递数据的例子。这不是我的问题。它是如何将SQL查询的多个结果返回到原始页面的。

使page2.php

$prod01 = $_REQUEST['prod01'];
$prod02 = $_REQUEST['prod02'];

$cost01 = mysqli_fetch_array(mysqli_query($db,"SELECT `cost`,`cost2` FROM `info` WHERE `blah`='".$prod01."'"));
$cost02 = mysqli_fetch_array(mysqli_query($db,"SELECT `cost`,`cost2` FROM `info` WHERE `blah`='".$prod02."'"));

$getcost01 = $qty01 * $cost01[0];
$getcost02 = $qty02 * $cost02[0];

$foo = array('result01' => $getcost01, 'result02' => $getcost02);
echo json_encode($foo);

page1.php中

var prod01 = $("#prod01").val();
var prod02 = $("#prod02").val();


$.ajax({  
type: "POST",  
url: "page2.php",
dataType: 'json',  
data : { prod01 : 'pro01', prod02 : 'prod02'},
cache: false,
success: function(result){
  $('.showit01').text(result.result01);
  $('.showit02').text(result.result02);
}
});

以上结果是:

$getcost01
$getcost02

不是数据库的预期SQL结果。

当我导航到" /page2.php?prod01 = ABC& prod02 = DEF"它按预期显示:

{"result01":"100","result2":"200"}

1 个答案:

答案 0 :(得分:0)

似乎ajax存在问题。我改变了

data : { prod01 : 'pro01', prod02 : 'prod02'},

var dataString = 'prod01='+ prod01 +'&prod02='+ prod02;

$.ajax({  
type: "POST",  
url: "page2.php?",
dataType: 'json',  
data : dataString ,
cache: false,
success: function(result){
  $('.showit01').text(result.result01);
  $('.showit02').text(result.result02);
  }
});

我假设我的ajax格式不正确?我无法解释。