Vueapp AJAX数组不起作用
Posted
技术标签:
【中文标题】Vueapp AJAX数组不起作用【英文标题】:Vueapp AJAX array not working 【发布时间】:2018-11-24 15:55:49 【问题描述】:大家好,我有一个 ajax 调用的 vueapp,如下所示:
$.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'] 返回数据库中所有对象的数组?出于某种奇怪的原因,我只得到一排。任何帮助都会很棒
【问题讨论】:
如果您不知道如何向数组添加值 - 打开手册。 这对我没有帮助 【参考方案1】:保持vueapp不变,但将后端页面改为
$selectdisplaysquery="SELECT * FROM display WHERE userId='$userid'";
$displaysresult=mysqli_query($mysqli, $selectdisplaysquery);
foreach($displaysresult as $display)
$displaysarray[]=$display;
$data['displays']=$displaysarray;
【讨论】:
比我快23秒,哈哈【参考方案2】:出于某种奇怪的原因,我只得到了一行。
看来你的问题就在这里:
$data['displays']=$row;
循环总是将displays
键替换为$row
值,因此您最终只会得到一个值。
解决方案如下:
$data['displays'][] = $row;
这样您就可以将 (push) 添加到数组的末尾。
确保首先创建数组,如下所示:
$data['displays'] = [];
$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);
【讨论】:
【参考方案3】:你也可以使用 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);
【讨论】:
以上是关于Vueapp AJAX数组不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Spring Rest API 的 AJAX POST 方法不起作用
Angular 的 $http.post 不起作用,它的 $http... 也不起作用,但 jQuerys ajax 起作用。为啥?