在 PHP 页面中,我有一个下拉列表,它触发 jQuery 更改功能并使用 AJAX 进行 POST,以便在页面中填充第二个下拉列表。
这一切都应该很简单,但是 Firebug 会为 '?' 引发语法错误。它在运行时出现在我的代码中,而实际上并不在我的代码中。
这是我的 JavaScript 代码:
$(document).ready(function() {
$('#taglist').change(function(){
$.ajax({
type: "POST",
url: "../includes/ajax.php",
data: "taglist=" + $(this).find("option:selected").attr('value'),
dataType: 'json',
success: function(response, textStatus, jqXHR) {
$("#catlist").html(response.catlist);
},
error: function (xhr, textStatus, errorThrown) {
$("#catlist").html(xhr.responseText);
}
});
});
});
以下是在 ajax.php 中执行的 PHP 代码:
if(isset($_POST['taglist'])){
$catlist = '<select name="cat_id[]" size="5" multiple id="cat_id[]">';
$catlist .= fillselecteditmultiple(0, 0, $_POST['taglist']);
$catlist .= '</select>';
echo json_encode(array("status"=>"success", "catlist" => $catlist));
}
fillselecteditmultiple() 输出填充的选项,突出显示应该预先选择的选项。它工作正常,因为我在其他页面中使用没有问题。为了确保函数本身没有抛出错误,我什至尝试更改函数以输出一个简单的 $catlist='abc' 字符串作为响应,但仍然是相同的错误。
奇怪的是,Firebug 在 javascript 代码的最后 2 行抛出一个错误,就像您在所附图片中看到的那样:
什么可能导致“?” 出现在我的代码中?