我使用json_encode通过ajax将数据从php发送回jquery。
我注意到jquery只允许我们在php中使用ONE echo。
如果我使用echo json_encode($ array); ....然后再使用一个echo json_encode($ array2);在同一个php文件中,它就行不通了。
或者如果我使用echo json_encode($ array);然后另一个回声“你好”;然后它也停止工作。
我是对的吗?问题是当我使用
时$users = mysqli_fetch_assoc($login_user_result);
在ajax中称为php文件和
echo json_encode($array);
它不起作用。它正确地发送$数组,但由于它上面的行,还有一堆其他代码。
但我必须使用mysqli_fetch_assoc从数据库中获取数据。
这方面的工作是什么?
编辑:这是我使用的ajax调用:
$.ajax({
url: "static/js/ajaxcall_login.php",
type: "POST",
data:
{
username: $("#login_box .username").val(),
password: $("#login_box .password").val()
},
dataType: "json",
success: function(data)
{
................
}
)};
答案 0 :(得分:2)
我没有发现您的Ajax请求有任何问题。
这是测试代码,它完美地工作......
请求强>:
$(document).ready(function() {
$.ajax({
url: "json.php",
type: "POST",
dataType: "json",
success: function(data) {
alert(data);
}
});
});
<强>来源:
$arr1 = array(3.14, 123, "foo");
$arr2 = array("one", "two", "three");
$arr = array_merge($arr1, $arr2);
echo json_encode($arr);
只有一件事要注意......
如果你在jQuery Ajax Request中将dataType设置为 json ,那么 respnse(echo)必须是合格的JSON。 这就是为什么你不能回应另一个 字符串和JSON。
答案 1 :(得分:1)
如果我使用echo json_encode($ array); .... 然后又一个回声 json_encode($数组2);在里面 相同的php文件,然后它将无法正常工作。
在json编码之前你需要merge两个数组。
我注意到jquery只允许 我们在php中使用ONE echo。
不正确,如果你下载并查看jQuery Autocomplete Plugin演示,你会发现在循环中使用了多个echo。
你能展示你的jQuery代码吗?好像您没有在Ajax请求中正确定义数据类型。请检查一下。
答案 2 :(得分:1)
JSON具有特定语法,如果输出不同的值,该语法将被破坏。
例如:
$a = array('a', 'b', 'c');
echo json_encode($a);
会给你:
(['a','b','c'])
...在javascript中解释为数组。如果你做了
$a = array('a', 'b', 'c');
echo json_encode($a);
echo "Hello";
然后打印出来:
(['a','b','c'])hello
会导致解析问题。
要打印出两个数组,请创建一个包含两个数组的结构:
$a = array();
$b = array();
$c = array('first' => $a, 'second' => $b);
echo json_encode($c);