从 php 返回一个可迭代对象到 Ajax
Posted
技术标签:
【中文标题】从 php 返回一个可迭代对象到 Ajax【英文标题】:Returning an itterable object to Ajax from php 【发布时间】:2021-04-25 03:54:31 【问题描述】:如何在我的 jquery/ajax 调用中遍历从下面的 php 脚本返回的对象?
我试过result[0]
,它给了我c
。这意味着我被返回一个字符串。我应该写什么代码来返回company1
等?
DROP DATABASE IF EXISTS test;
CREATE DATABASE test;
USE test;
CREATE TABLE company(
name VARCHAR(255),
id INT PRIMARY KEY AUTO_INCREMENT
);
INSERT INTO company(name) VALUES( 'company1');
INSERT INTO company(name) VALUES( 'company2');
INSERT INTO company(name) VALUES( 'company2');
$.ajax(
type: "GET",
url: "manager-get-company.php",
success: function (response)
//iterate through response here
//console.log(response[0]; -> log Company1
//console.log(response[1]; -> log Company2
);
<?php
//manager-get-company.php
$hostname = 'localhost';
$username = 'root';
$password = '';
$database_name = 'test';
$con = mysqli_connect($hostname,$username,$password,$database_name);
//Check connection
if (mysqli_connect_errno())
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();
$sql= mysqli_query($con, 'SELECT name FROM company');
while($row = mysqli_fetch_array($sql))
echo $row['name'];
【问题讨论】:
【参考方案1】:在 ajax 中添加dataType : "json",
$.ajax(
type: "GET",
dataType : "json",
url: "manager-get-company.php",
success: function (response)
//iterate through response here
if(!response.error)
console.log(response[0]);
);
在php中
$result = [];
//Check connection
if (mysqli_connect_errno())
$result['error'] = "Failed to connect to MySQL: " . mysqli_connect_error();
else
$sql= mysqli_query($con, 'SELECT name FROM company');
while($row = mysqli_fetch_array($sql))
$result[] = $row['name'];
echo json_encode($result);
已编辑:使用$result['error']
而不是result['error']
【讨论】:
您好,谢谢您的回答。我仍然从运行它得到一个 500 错误代码 @VectorXY 如果您的代码返回值c
,如您所说,那么我的代码应该可以正常工作。请复制/粘贴我的代码,然后重试
@VectorXY 我将array_push
行改为`$result[]`检查一下
@VectorXY 抱歉 $result= array_push(
应该是 array_push(..
没有 $result =
反正 $result[] = $row['name']
会工作
是的,现在工作正常。我应该更深入地研究数组。非常感谢!以上是关于从 php 返回一个可迭代对象到 Ajax的主要内容,如果未能解决你的问题,请参考以下文章
只要基于前一个元素的条件为真,“Pythonic”方式就可以从可迭代对象中返回元素