在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行引发了错误,如您在所附的图片中看到的那样:


是什么原因导致“?”出现在我的代码中?

最佳答案

只需检查您的编码即可。当您在一行的末尾看到“奇怪的”符号时,这可能主要是由编码问题引起的。

另外,常见建议:

10-05 20:42
查看更多