0

我正在尝试使用 PHP、jQuery 和 AJAX 向框动态添加选项。

首先,当第一个控件(taglist)改变时调用 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));
}

我需要在 a 中相应地返回该字符串($catlist)<select id="mylist"></select>,以便最终输出是这样的:

<select id="mylist">
  <option value="1">Option 1</option>
  <option value="2">Option 2</option>
  <option value="3">Option 3</option>
</select>

在 Firebug 中,我正确地看到了响应,但页面中没有显示任何内容。

我该怎么做?如果您觉得我的问题不完整,请要求任何澄清。

4

3 回答 3

2

如果您运行 jquery lib,请执行以下操作:

$.ajax({
  url: 'your_script_url.php',
  success: function(data) {
    $('#mylist').html(data);
  }
});

或者,如果您想添加额外的选项,您可以附加数据

于 2012-12-05T15:25:31.123 回答
1
$.ajax({
  url: 'ajax/test.html',
  success: function(data) {
   //Relevant code
    $('#mylist').html(data);
  }
});
于 2012-12-05T15:25:46.007 回答
1

用于.append在元素内插入内容。见下文,

$('#mylist').append($options);
于 2012-12-05T15:23:16.587 回答