【问题标题】:Send JQuery DOM Object as XML to server将 JQuery DOM 对象作为 XML 发送到服务器
【发布时间】:2011-08-06 02:46:29
【问题描述】:

在谷歌上搜索了几个小时后,我仍然遇到这个问题。希望大家帮帮我。

我正在构建一个应用程序,让用户可以为相册设计他们的页面。它首先使用 XML 为每个页面加载标准格式。 XML 是通过使用 JQuery 的 AJAX 调用加载的,如下所示:

$.get('http://www.domain.com/ajaxcall.php', function(responseXML) {
    $xmlDoc= $(responseXML);
)}

XML 文件现在作为对象加载,我可以对其执行 JQuery 方法,这减少了我的代码量。

用户端的编辑保存在 $xmlDoc 中。因此,当用户在页面上拖动照片时,新坐标将保存为该照片的属性。完成所有用户编辑后,我想导出新的 XML 并将其保存到服务器。这就是我的问题开始的地方。由于我已将 XML 作为 JQuery 对象加载(通过使用 $(responseXML)),因此我无法再将其导出为 XML 文件。我通过调用 $.isXMLDoc($xmlDoc) 进行了检查,它以 false 响应。

既然将 XML 转换为对象非常容易,我想一定有一种方法可以反过来做。对此有何想法?

来自原始文件的 XML:

<pages>
 <page bgcolor="0099cc" titlecolor="f8f8f8" subtitlecolor="000000">
  <title>test</title>
  <subtitle></subtitle>
  <photo id="458267411204" name="" picture="http://www.domain.com/picture.jpg" height="540" width="720" x="25" y="0">
   <creator id="712241204" name=""/>
  </photo>
 </page>
</pages>

【问题讨论】:

标签: javascript jquery xml ajax


【解决方案1】:

我不太确定它是否适用于 XML,但适用于 HTML:

$('<div>').append($xmlDoc).html()

我写了一个小小提琴来演示我的解决方案:http://jsfiddle.net/scheffield/3RhhF/

试一试。

【讨论】:

  • 我写了一个小提琴...looky looky ;)
【解决方案2】:

ok 将 JavaScript 对象序列化为 XML 并不那么直接。 GSerializer 库对你有用
It can be found here

或者你应该能够通过使用 .html() 来从添加它的元素中获取 HTML

$(".div").html() 

这可以保存到数据库中

【讨论】:

    【解决方案3】:

    我找到了解决方案。我将 Ajax 调用如下:

    $.ajax({
      url: "http://www.domain.com/ajaxcall.php"?,
            type: "POST",
            contentType: "application/xml",
            processData: false,
            data: $xmlDoc.context,
            success: function(data) {
             alert('success');
            }
    });
    

    然后在 ajaxcall.php 中处理文件并将其保存到服务器:

    $xmlcontent = $GLOBALS["HTTP_RAW_POST_DATA"];
    $handle = fopen($_SERVER["DOCUMENT_ROOT"].'/userfiles/xml/book.xml', 'wb');
    fwrite($handle,$xmlcontent);
    fclose($handle);
    

    【讨论】:

      猜你喜欢
      • 2019-01-15
      • 2016-12-28
      • 2014-02-24
      • 2013-02-09
      • 2015-10-13
      • 1970-01-01
      • 1970-01-01
      • 2012-12-29
      相关资源
      最近更新 更多