我正在尝试使用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中,我看到了正确的响应,但页面中没有显示任何内容。
我该怎么做?如果您认为我的问题不完整,请询问任何说明。
答案 0 :(得分:2)
如果你有jquery lib运行,请执行以下操作:
$.ajax({
url: 'your_script_url.php',
success: function(data) {
$('#mylist').html(data);
}
});
或者,如果您想添加额外选项,可以附加数据
答案 1 :(得分:1)
使用.append
在元素中插入内容。见下文,
$('#mylist').append($options);
答案 2 :(得分:1)
$.ajax({
url: 'ajax/test.html',
success: function(data) {
//Relevant code
$('#mylist').html(data);
}
});