【问题标题】:Trying to receive dynamicaly generated XML from php file, and display it using jQuery尝试从 php 文件接收动态生成的 XML,并使用 jQuery 显示它
【发布时间】:2010-12-23 23:27:13
【问题描述】:

我决定在 jQuery 的帮助下深入研究 AJAX,但我已经陷入困境......

无论如何!我有一个 php 文件,调用时会生成以下 XML:

<response>
<status>1</status>
<character><charname>Loupax</charname>
<charId>112</charId>
<charLvl>1</charLvl>
<charStats>
<statsId>63</statsId>
<strength>13</strength>
<dexterity>14</dexterity>
<physique>15</physique>
<defence>12</defence>
</charStats>
</character>
</response>

我想做的是在我的 html 页面上显示这些元素(呃!),但我无法弄清楚 jQuery...

我的 jQuery 是这样的:

$(document).ready(function(){
$("#showBtn").mouseup(function(){
var charname=$("#showInp").val();
//var data="";
$.ajax({
url: 'ajaxgetchar.php',
data: "showInp=Loupax",
dataType:text,
type:'POST',
success: function(data){
$('.result').xml(data);
alert("Success!!!");
};
});
});
});

标记是 &lt;input type="button" value="Show character" id="showBtn" name="showBtn"/&gt;

问题是,无论我点击多少次按钮,我都没有收到我应该收到的警报...

任何帮助将不胜感激...我是 XML/jQuery/ajax 的新手,我很确定这很愚蠢...:(

【问题讨论】:

    标签: php xml jquery


    【解决方案1】:

    .xml 方法不存在?

    试试

    $('.result').text(data);
    

    也试试 alert(data),看看它是否返回任何东西。

    $("#showBtn").click(function() {
    
    $.ajax({
       type: "POST",
       url: "ajaxgetchar.php",
       data: "showInp=Loupax",
       success: function(data){
         alert(data);
       }
     });
    
    });
    

    【讨论】:

    • 做同样的事情...当我点击btn时没有反应...没有办法调试这个东西吗???
    • 分号这么麻烦?呃,我知道这很愚蠢......它奏效了!非常感谢!
    【解决方案2】:

    首先,我会使用$("#showBtn").click() 而不是$("#showBtn").mouseup()。其次,您应该删除成功功能后多余的;。第三,下载 Firefox 的 Firebug 扩展,看看它是否真的在进行 ajax 调用,如果是,响应是什么。如果您收到错误响应代码,则不会调用成功函数。要捕获错误,请在您的 ajax 调用中使用 error(XMLHttpRequest, textStatus, errorThrown) 设置:

    $.ajax({
      url: 'ajaxgetchar.php',
      data: "showInp=Loupax",
      dataType:text,
      type:'POST',
      error: function(xhr, status, error){
        // Handle error here
      },
      success: function(data){
        $('.result').xml(data);
        alert("Success!!!");
      }
    });
    

    【讨论】:

    • 不好...我将处理程序从 mouseUp 更改为 click()(即使我对其进行了测试,并且处理程序触发了)...我正在下载 firebug,我会回来的!
    • 请注意 Sarah 的回答与额外的 ; 相关。这个分号是一个简单的语法错误,所以什么也没发生。
    【解决方案3】:

    所以看起来你遇到了一个错误,添加一个错误:function(request, status, errthrown) { alert(errthrown); } 到您的代码中以查看抛出的错误。您可能需要调整该功能,我只是凭记忆快速调整..

    更多详情jQuery.ajax:

    【讨论】:

      猜你喜欢
      • 2010-10-03
      • 1970-01-01
      • 1970-01-01
      • 2016-05-24
      • 2023-04-03
      • 2013-03-04
      • 2014-02-15
      • 1970-01-01
      相关资源
      最近更新 更多