在ajax请求之后重新填充select

时间:2010-10-15 13:12:33

标签: php jquery ajax

我有一个选择,允许用户选择多个选项。同一页面上还有一个表单,允许用户添加将出现在选择中的新关键字。

我的javascript向php脚本发送ajax请求,该脚本返回成功或错误消息,然后将其添加到dom中。

脚本的ajax部分看起来像这样

$.post(
        metadataAction,
        {
            dateOfUpdate:dateOfUpdateVal,
            metadataStandardName:metadataStandardNameVal,
            metadataLanguage:metadataLanguageVal
        },
        function(responseText) {
            $('body').append(responseText);
        },
        "html"
);

我只想在成功添加新关键字后重新填充选项。

有没有人对实现这个目标的最佳方法有任何建议?

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

$.post(
        metadataAction,
        {
            dateOfUpdate:dateOfUpdateVal,
            metadataStandardName:metadataStandardNameVal,
            metadataLanguage:metadataLanguageVal
        },
        function(responseText) {
            $('body').append(responseText);
            $('#select_id').append('<option>'+responseText+'</option>');
        },
        "html"
);

答案 1 :(得分:0)

看起来有点奇怪,你将消息附加到身体,但无论如何......

返回表示具有两个属性的对象的JSON字符串:success [bool],message [string]
没有PHP的经验,但如果响应是JSON类型,那么jQuery(1.4.2) 将其解析为对象,然后在您的成功函数中解析:

function(data)
{
  if(data.success)
  {
    //append the item
  }
  //show the message
  $(msgCont).text(data.message)
}

请注意,如果响应状态代码为200(或任何其他2XX),您将始终获得成功功能

答案 2 :(得分:0)

为了解决这个问题,我让php脚本输出了一个json对象。

如果添加成功,json有三个属性。

成功,消息和newSelect。我在ajax响应中检查是否成功。如果它存在,我使用jquery方法replaceWith()来更新当前表单中返回的选择。

感谢您的帮助。