Javascript 将JQuery DOM对象作为XML发送到服务器
在谷歌搜索了几个小时后,我仍然被这个问题困扰着。希望你们能帮我 我正在构建一个应用程序,允许用户为相册设计页面。它首先使用XML加载每个页面的标准格式。使用JQuery通过AJAX调用加载XML,如中所示:Javascript 将JQuery DOM对象作为XML发送到服务器,javascript,jquery,xml,ajax,Javascript,Jquery,Xml,Ajax,在谷歌搜索了几个小时后,我仍然被这个问题困扰着。希望你们能帮我 我正在构建一个应用程序,允许用户为相册设计页面。它首先使用XML加载每个页面的标准格式。使用JQuery通过AJAX调用加载XML,如中所示: $.get('http://www.domain.com/ajaxcall.php', function(responseXML) { $xmlDoc= $(responseXML); )} XML文件现在作为对象加载,我可以对其执行JQuery方法,这减少了我的代码量 从用户端进
$.get('http://www.domain.com/ajaxcall.php', function(responseXML) {
$xmlDoc= $(responseXML);
)}
XML文件现在作为对象加载,我可以对其执行JQuery方法,这减少了我的代码量
从用户端进行的编辑保存在$xmlDoc中。因此,当用户在页面上拖动照片时,新的Cordinate将保存为该照片的属性。完成所有用户编辑后,我想导出新的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>
测试
我不太确定它是否适用于XML,但适用于HTML是:
$('<div>').append($xmlDoc).html()
$('').append($xmlDoc.html())
我写了一个小提琴来演示我的解决方案:
试试看。好的,将JavaScript对象序列化为XML并不是那么简单。GSerializer库对您很有用
或者,只需使用.HTML()就可以从附加了HTML的元素中获取HTML
这可以保存到数据库中我找到了解决方案。我按如下方式调用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);
可能是我写的小提琴的复制品。。。looky looky;)
$xmlcontent = $GLOBALS["HTTP_RAW_POST_DATA"];
$handle = fopen($_SERVER["DOCUMENT_ROOT"].'/userfiles/xml/book.xml', 'wb');
fwrite($handle,$xmlcontent);
fclose($handle);