将数据从 php 传回 ajax

Passing data back from php to ajax

本文关键字:传回 ajax php 数据      更新时间:2023-09-26

如何将数据从 php 的 then 行传递回 ajax ?

.PHP

$query = 'SELECT * FROM picture order by rand() LIMIT 10';
$result = mysql_query($query);
while ($rec = mysql_fetch_array($result,  MYSQL_ASSOC)) {
$url[]=$rec['pic_location'];
$name[]=$rec['name'];
$age[]=$rec['age'];
$gender[]=$rec['gender'];

}
echo json_encode($url);
echo json_encode($name);
echo json_encode($age);
echo json_encode($gender);

阿贾克斯

$(".goButton").click(function() {
   var dir =  $(this).attr("id");
   var imId = $(".theImage").attr("id");
   $.ajax({
      url: "viewnew.php",
      dataType: "json",
      data: {
         current_image: imId,
         direction    : dir
      },
      success: function(ret){
          console.log(ret);
          var arr = ret;
          alert("first image url: " + arr[0][0] + ", second image url: " + arr[0][1]);  // This code isnt working
          alert("first image Name: " + arr[1][0] + ", second image name: " + arr[1][1]);
          $(".theImage").attr("src", arr[0]);
          if ('prev' == dir) {
            imId ++;
         } else {
            imId --;
         }
         $("#theImage").attr("id", imId);
      }
   });
});
});
</script>

我的问题是如何在此处显示值?警报消息给我"未定义"?

你可以按照这些思路做一些事情。

.PHP

$query = 'SELECT * FROM picture order by rand() LIMIT 10';
$res = mysql_query($query);
$pictures = array();
while ($row = mysql_fetch_array($res)) {
  $picture = array(
    "pic_location" => $row['pic_location'],
    "name"         => $row['name'],
    "age"          => $row['age'],
    "gender"       => $row['gender']
  );
  $pictures[] = $picture;
}
echo json_encode($pictures);

.JS

...
$.ajax({
  ...
  dataType: "json",
  ...
  success: function(pictures){
    $.each(pictures, function(idx, picture){
      // picture.pic_location
      // picture.name
      // picture.age
      // picture.gender
    });
  }
});
...
不能

为 AJAX 响应放置多个echo语句:

echo json_encode($url);
echo json_encode($name);
echo json_encode($age);
echo json_encode($gender);

加入阵列并发送单个响应:

$arr = $url + $name + $age + $gender;
echo json_encode($arr);

您可以使用单个数组轻松执行此操作:

$pics = array();
while ($rec = mysql_fetch_array($result, MYSQL_ASSOC)) {
  $pics[$rec['id']]['url'] = $rec['pic_location'];
  $pics[$rec['id']]['name']=$rec['name'];
  $pics[$rec['id']]['age']=$rec['age'];
  $pics[$rec['id']]['gender']=$rec['gender'];
}
echo json_encode($pics);