使用ajax调用php文件时,我收到语法错误。
Uncaught SyntaxError: Unexpected token F
Uncaught SyntaxError: Unexpected token F
Uncaught SyntaxError: Unexpected token F
Uncaught SyntaxError: Unexpected token F
Uncaught SyntaxError: Unexpected token F
Uncaught SyntaxError: Unexpected token F
在复选框字段中使用onclick事件调用change_produkt
函数。
该函数的输出如下:
现在,我调用第二个函数fill_optionen
并将数组传递给该函数。它正在为每个对象执行ajax调用。 (在这种情况下为6次)
使用Javascript:
function fill_optionen(optionen) {
console.log("fill_optionen called.."); // Debug
var text = "";
$j.each(JSON.parse(optionen), function (index, value) {
jQuery.ajax({
url: 'include/mutation_helper.php',
data: {func: "render_opt", option: value},
type: 'post',
success: function(output) {
console.log(JSON.parse(output)); // Debug
}
});
});
}
function change_produkt() {
console.log("change_produkt called.."); // Debug
var id_produkt = $j("#produkt").val();
console.log("DEBUG -- id_produkt:"+id_produkt);
jQuery.ajax({
url: 'include/mutation_helper.php',
data: {func: "get_opts", produkt: id_produkt},
type: 'post',
success: function(output) {
console.log(JSON.parse(output)); // Debug
fill_optionen(output);
}
});
}
PHP:
function render_opt() {
if(!isset($_POST['option'])) {
echo json_encode("error");
exit;
}
$opt = $_POST['option'];
$render = render($opt, $_SESSION['mutation']);
echo json_encode("hello");
}
一旦删除调用render
函数的行,它就会起作用。但为什么会有错误呢?我甚至没有打印出$render
变量。
(render
函数仅返回字符串中的html代码。)
答案 0 :(得分:3)
jQuery会自动检测JSON响应并为您反序列化。正如您所见,在结果对象上调用JSON.parse
将导致错误。试试这个:
success: function(output) {
console.log(output); // Debug
fill_optionen(output);
}
答案 1 :(得分:3)
您的render
函数中似乎有PHP错误。然后PHP打印出它的错误,后来导致JavaScript错误。因为JSON被ajax请求排除为返回输出,并且您得到一个包含PHP错误消息的字符串。请查看ajax请求原始网络数据下的浏览器调试器,确实返回了什么。