PHP ページには、jQuery 変更機能をトリガーするドロップダウン リストがあり、ページに 2 番目のドロップダウン リストを設定するために 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 行でエラーをスローすることです。
「?」の原因は何ですか? コードに表示するには?