【问题标题】:JQuery is not loading xml from successJQuery 没有从成功中加载 xml
【发布时间】:2014-11-26 21:55:29
【问题描述】:

我有一个 jQuery 发布到 php 文件并返回 xml。我似乎无法加载和提醒特定字段 part_note。在 Jquery 中,我有一个“数据”警报,它显示了返回的 xml。任何帮助,将不胜感激。

它加载的 XML 是:

<qdbapi>
    <record>
        <related_bid>48</related_bid>
        <part_note>This is a note 1</part_note>
        <record_id_>24</record_id_>
        <update_id>1417012758913</update_id>
    </record>
</qdbapi>

我的 jQuery:

$.post('/business/data/update_detail.php' , field_userid + "=" + value, function(data){
                if(data == 'error')
                {
                 var field = document.getElementById(field_userid);
                     document.getElementById(field_userid).className = "error";
                }
                else {

                  alert(data);
                  $(xml).find("record").each(function()
                  {
                    alert($(this).find("part_note").text());
                  });

                }
});

【问题讨论】:

    标签: javascript php jquery xml


    【解决方案1】:

    尝试使用 $.ajax 方法的显式形式,其中第一个参数不是字符串,而是一个对象,显式包含 dataType:'xml'。 Here's the API page

    $.ajax({
      type: 'POST',
      url: "/test.php",
      dataType: 'xml' // magic is here!
    }).done(function(data) {
      console.log(data);
    });
    

    【讨论】:

      【解决方案2】:
      $.ajax({
        type: 'POST',
        url: "/business/data/update_detail.php",
        data: your_data_to_post,
        dataType: 'xml',
        success: function(response_data) {
           //do what you want to do after POST 
        }
      }).fail(function(xhr, status, error_string) {
         //do what you want to do if POST failed
      })
      

      【讨论】:

        【解决方案3】:

        您没有名为xml 的变量;因此您的代码应如下所示。由于您的响应是一个字符串,因此您想使用$.parseXML() 来解析 XML 字符串。

          alert(data);
          var xml = $.parseXML( data );
          $(xml).find("record").each(function()
          {
              alert($(this).find("part_note").text());
          });
        

        这是一个演示如何解析它的演示;实际上你只漏掉了一行:var xml = $.parseXML( data );。其他都很好。

        var data = 
        '<qdbapi>\
            <record>\
                <related_bid>48</related_bid>\
                <part_note>This is a note 1</part_note>\
                <record_id_>24</record_id_>\
                <update_id>1417012758913</update_id>\
            </record>\
        </qdbapi>';
        alert( data );
        var xml = $.parseXML(data);
        $(xml).find("record").each(function() {
            alert($(this).find("part_note").text());
        });
        &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"&gt;&lt;/script&gt;

        【讨论】:

          猜你喜欢
          • 2011-06-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多