此前我已经成功地访问在调用PHP数组回jQuery的AJAX功能,通过执行以下操作:阿贾克斯返回一个字符串,而不是数组
$.post('ajax.php', {name: name}, function(data) {
var obj = jQuery.parseJSON(data);
var item = obj[6]
使用PHP之中:
$sql = "SELECT * FROM sales WHERE email = 'test' AND item = '$name' ";
$result = mysqli_query($conn, $sql);
if ($result){
$row = mysqli_fetch_array($result);
echo json_encode($row);
}
我现在有一个稍微不同的情况,我不会想到一个问题,但是非常多:
PHP
$sql = "SELECT * FROM sales WHERE ".$searchwithin." BETWEEN '2017-02-01' AND '2017-03-01'";
$result = mysqli_query($conn, $sql);
if ($result){
while ($row = mysqli_fetch_assoc($result)){
echo json_encode($row);
}
当我做下面的Jquery:
var obj = data.length;
alert(obj);
我得到一个高得离谱的数字,它告诉我,它的计算字符串的长度,而不是数组长度;所以我想这是第一个问题,尽管貌似复制了一个成功的过去ajax,我现在得到一个字符串返回,而不是一个数组。
最后,我想这涉及到的第一个问题,每当我用
var obj = jQuery.parseJSON(data);
它不喜欢它;我什么都没有收到,甚至没有收到警报,或者我收到了一个警报,并返回了“未定义”。
该数组应包含八个左右的十五列mysqli表行;我相信我可以使用诸如OBJ [5] [7]。但我不能尝试,因为它返回一个字符串,看起来,不是一个数组。我是新来的代码,并提前感谢。
哦,这是我所得到的,如果我只是做警报(数据):
{“ID”:“8”等}
'json_encode' __must__是一次使用 –
哦,我不知道那个笑。所以我创建了一个变量,在循环中存储数组,然后在变量的最后执行json_encode? – user1849962
是的,它可能适用于您的第一代码,因为可能只返回1行。在循环中构建一个数组,然后编码/回显。 – AbraCadaver