Javascript PHP和JQuery-PHP json_编码的2D数组不';我们没有到达jqueryajax
我试图创建一个演示程序,从运行SQL查询的PHP脚本中获取数据,获取关联的数组,并对其进行json_编码,然后将其返回给调用PHP文件中的JQuery ajax调用方。由于某些原因,它从未到达(请咨询Firebug)。但是如果我手动创建一个2D数组,并对其进行json_编码,它就可以正常工作。我完全被难住了,为什么我的数组从来没有从SQL中生成,但如果我只是手工键入它,它就会生成。我对结果字符串进行了区分,它们完全相同 代码: PHP文件:Javascript PHP和JQuery-PHP json_编码的2D数组不';我们没有到达jqueryajax,javascript,php,jquery,arrays,ajax,Javascript,Php,Jquery,Arrays,Ajax,我试图创建一个演示程序,从运行SQL查询的PHP脚本中获取数据,获取关联的数组,并对其进行json_编码,然后将其返回给调用PHP文件中的JQuery ajax调用方。由于某些原因,它从未到达(请咨询Firebug)。但是如果我手动创建一个2D数组,并对其进行json_编码,它就可以正常工作。我完全被难住了,为什么我的数组从来没有从SQL中生成,但如果我只是手工键入它,它就会生成。我对结果字符串进行了区分,它们完全相同 代码: PHP文件: <?php header('Content-Ty
<?php
header('Content-Type: application/json');
error_reporting(0); // prevents a notice from breaking ajax
//session_start();
$username = $_GET['username'];
$json = array();
$test = array(
array("id"=>4,"first_name"=>"Miles","last_name"=>"O'Brian"),
array("id"=>5,"first_name"=>"Jean Luc","last_name"=>"Picard"),
array("id"=>6,"first_name"=>"Reginald","last_name"=>"Barclay")
);
$mysqli = new mysqli('mydomain', 'myuser', 'mypassword', 'mydb');
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
if ($stmt = $mysqli->prepare("SELECT `id`, `first_name`, `last_name` FROM client WHERE provider_username = ?")) {
$stmt->bind_param('s', $username);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
$json[] = $row;
}
$result->close();
}
$mysqli->close();
echo json_encode($json);
echo json_encode($test);// this works
?>
你能把你的结果集发布在这里吗?这是satement返回的结果集。
$result->fetch_assoc()
请检查您的php版本。因为在PHP5.4中可以使用代码“$json[]=$row;”中使用的shorten方法添加数组元素。查看更多信息
第二个选项如果在PHP版本中不可用,则可以通过以下方式实现:
数组推送($json,$row);而不是$json[]=$row 我解决了我的问题。Ajax中我设置数据的行:
data: { username: $('#staff_list').val() }
这是问题的根源。出于某种原因,它得到了一个数组,形成了一条直线
data: { username: $('#staff_list').val()[0] }
已修复问题。是否必须尝试打开错误报告?还有支票?而不是console.log('results')
,而是将响应放入console.log(results)
(不带引号)?是否有任何用户具有确切的用户名's'?您在sql中使用了“=”,这里可能是“像”的意思,这是从sql:[{“id”:7,“first_name”:“Tom”,“last_name”:“Cruise”},{“id”:8,“first_name”:“John”,“last_name”:“Cusak”}编码的结果数据集的精确副本这是该数组的打印输出:array([0]=>array([id]=>7[first\u name]=>Tom[last\u name]=>Cruise[1]=>Array([id]=>8[first\u name]=>John[last\u name]=>Cusak))记住:每个jQuery DOM选择器函数$(某物)
都返回一个数组<代码>$(“#员工列表”).first().val()
可能是您想要的。
data: { username: $('#staff_list').val()[0] }