首页 > 解决方案 > Vueapp AJAX数组不起作用

问题描述

大家好,我有一个 vueapp,可以进行如下所示的 ajax 调用:

$.ajax({
  url: 'addDisplayBackend.php',
  dataType: 'json',
  type: 'post',
  contentType: 'application/json',
  dataType: 'json',
  data: jsonString,
    error: function(data){
      alert('error');
    console.log(data);
    },
  success: function(data){
    console.log(data);
      alert('success');
      this.nameexists=data.nameexists;
      if(this.nameexists==false){
    console.log(data);
    this.displays=data.displays;
    this.hideAddDisplayForm();
    }
  }.bind(this)
});

在 addDisplay 后端页面上,我做了很多事情,但我选择了如下所示的语句:

$selectdisplaysquery="SELECT * FROM display WHERE userId='$userid'";
$displaysresult=mysqli_query($mysqli, $selectdisplaysquery);
while($row=mysqli_fetch_assoc($displaysresult)){
 $data['displays']=$row;
}
echo json_encode($data);

为什么这不起作用?为什么我不能让 $data['displays'] 返回数据库中所有对象的数组?出于某种奇怪的原因,我只得到一排。任何帮助都是极好的

标签: phpmysqlajaxvue.jsvuejs2

解决方案


您也可以使用 mysqli_fetch_all() 函数。

$selectdisplaysquery="SELECT * FROM display WHERE userId='$userid'";

$displaysresult=mysqli_query($mysqli, $selectdisplaysquery);


$data = mysqli_fetch_all($displaysresult,MYSQLI_ASSOC);

echo json_encode($data);

推荐阅读