PHP、jQuery、および AJAX を使用して、ボックスにオプションを動的に追加しようとしています。
まず、最初のコントロール (タグリスト) が変更されたときの AJAX への呼び出し:
$('#taglist').change(function(){
$.post('../includes/ajax.php', {
taglist:$(this).find("option:selected").attr('value')}, function(data) {
$("#catlist").html(data.catlist);
});
});
私が作成した PHP 関数 fillselecteditmultiple() は、次の形式の文字列を設定します。
$options = '<option value="1">Option 1</option><option value="2">Option 2</option><option value="3">Option 3</option>';
次のように json_encode を使用してページに返します。
if(isset($_POST['taglist'])){
$catresult = mysql_query("select catid from category_tags where id='".$_POST['taglist']."'");
$rowcat = mysql_fetch_array($catresult);
$catlist = '<select name="cat_id[]" size="5" multiple id="cat_id[]">';
$catlist .= fillselecteditmultiple(1, 0, $rowcat['catid']);
$catlist .= '</select>';
echo json_encode(array("status"=>"success", "catlist" => $catlist));
}
<select id="mylist"></select>
最終的な出力が次のようになるように、それに応じてその文字列 ($catlist) を返す必要があります。
<select id="mylist">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
Firebug では、応答は正しく表示されますが、ページには何も表示されません。
どうすればいいですか?私の質問が不完全だと思われる場合は、説明を求めてください。