Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jQuery数据类型:_Php_Jquery_Xml - Fatal编程技术网

Php jQuery数据类型:

Php jQuery数据类型:,php,jquery,xml,Php,Jquery,Xml,关于jQuery数据类型,我有一个奇怪的问题 我有一个非常简单的PHP程序,它返回一个XML文件(字符串)。看起来像这样: $xmlFile = "sampleXMLFile.xml"; $xml = simplexml_load_file($xmlFile); echo $xml->saveXML(); function myCompleteFunction(xml) { $(xml).find("Row").each(function() {

关于jQuery数据类型,我有一个奇怪的问题

我有一个非常简单的PHP程序,它返回一个XML文件(字符串)。看起来像这样:

$xmlFile = "sampleXMLFile.xml";
$xml = simplexml_load_file($xmlFile);     
echo $xml->saveXML();
function myCompleteFunction(xml)
{
      $(xml).find("Row").each(function()
      {
        $("#result3").append($(this).attr("myrow"));
      });
}
我的客户端/javascript代码通过ajax调用php程序:

$(document).ready(function()
{
    $.ajax({
    type: "GET",
    url: "myPHPFile.php",   
    dataType: "xml",
    success: myCompleteFunction,
    complete: mySuccessFunction,
    failure: function(data) {
        alert("Problem getting XML");
        } });
});
“myCompleteFunction”接受XML并将第一个节点简单地写入div元素,如下所示:

$xmlFile = "sampleXMLFile.xml";
$xml = simplexml_load_file($xmlFile);     
echo $xml->saveXML();
function myCompleteFunction(xml)
{
      $(xml).find("Row").each(function()
      {
        $("#result3").append($(this).attr("myrow"));
      });
}
好的-在IE8中,这很好用。在Firefox和Chrome中,我没有得到任何结果。但是,如果我将数据类型更改为“html”,我会在Firefox和Chrome中得到正确的结果,然后在IE中得到无结果

继续为此疯狂吧。我真的需要为浏览器设置条件逻辑吗

jQuery手册中解释的数据类型:选项似乎足够清晰。我甚至试着不使用数据类型

(根据手册:如果未指定,jQuery将尝试根据MIME推断它 (答复的类型)

我还尝试了多种类型,例如“文本xml”。不好

有人遇到过这个问题吗?任何指示都将不胜感激

多谢各位

p、 我知道我可以在jQuery中读取XML文件。PHP程序生成的XML将涉及更多内容。我只是举个例子


更新:


嗯,我看到Phil关于在XML数据发送之前生成一些东西的评论。当然没有什么明显的迹象。我删除了第一个
saveXML()上方的一个空行;
?>
我还将考虑您关于正确处理jQuery.ajax()回调的其他建议。谢谢

我非常感谢你的帮助

坚持使用“xml”
数据类型
,并将其添加到PHP文件中的
echo

header('Content-type: text/xml');
另外,您似乎混淆了一些
jQuery.ajax()
回调

  • 使用
    success
    处理返回的数据
  • 使用
    错误(jqXHR、textStatus、errorshown)
    (而不是
    失败
    )来处理HTTP错误
  • 在执行了
    success
    error
    回调后,使用
    complete
    执行一些任务

在没有运气的情况下尝试了这个$xmlFile=“sample.xml”$xml=simplexml\u加载文件($xmlFile);标题('Content-type:text/xml');echo$xml->saveXML();得到这个,没有结果。警告:无法修改标题信息-标题已发送by@Rob在这种情况下,在发送XML数据之前,您就可以生成输出了。你肯定不想要这个。此外,编辑您的问题以添加更多代码/消息。不要尝试在commentsWell中发布它,我看到Phil关于在XML数据发送之前生成某些内容的评论。当然没有什么明显的迹象。我删除了第一个