使用jquery ajax

时间:2015-06-17 17:50:44

标签: php jquery mysql ajax jquery-ajaxq

我正在尝试使用$.post从MySQL检索多个数据。我似乎无法让这个工作。如何使用MySQL的jquery-ajax检索多个数据?

PHP

$e = $_POST['stu'];
$sq ="SELECT physics, chemistry, agriculture FROM subjects WHERE student = :student";
$stmt = $getdb->prepare($sq);
$stmt->execute(array(':student'=>"123456"));
$rslt = $stmt->fetchAll();

$sd=array();
foreach($rslt as $val){
     $sd[] = $val; 
}
echo json_encode($sd);

jq:

$.post('my.php',
    {
      stu:"test"
    },
    function(data){
       $.each(data,function(ab){
         alert(ab.physics+" || "+ab.chemistry+" || "+item.agriculture);
       });
});

修改

的console.log(数据);

enter image description here

2 个答案:

答案 0 :(得分:0)

假设你想要返回两个数组。
所以从PHP方面来看:

echo json_encode(Array($first_array,$second_array), JSON_FORCE_OBJECT);

然后是js方面:

function(data) {
      var my_obj = JSON.parse(data);
      var first_arr = my_obj[0];
      var second_arr = my_obj[1]; 
}

答案 1 :(得分:0)

如果您正在尝试使用那种sintax,那么我建议将php代码更改为以下sintax

$e = $_POST['stu'];
$sq ="SELECT physics, chemistry, agriculture FROM subjects WHERE student = :student";
$stmt = $getdb->prepare($sq);
$stmt->execute(array(':student'=>"123456"));
$rslt = $stmt->fetchAll();

$sd=array();
foreach($rslt as $val){
  $sd[] = array("".$val.""=>$val); 
}
echo json_encode($sd);    Ho

在jquery ajax中我推荐以下

$.post('my.php',
{
  stu:"test"
},
function(data){
   var result = $.parseJSON(data);
   $.each(result,function(i, ab){
     console.log(ab.physics+" || "+ab.chemistry+" || "+item.agriculture);
   });
});

希望这有用......