2

我目前正在编写一个使用 xml 的应用程序。我使用这个访问xml文件 -

$.ajax({
    type: "GET",
    url: "data/data.xml",
    dataType: "xml",
    success: function (xml) {
        data = xml;
        init(); 
    }
});

然后我使用 $(data).find 等更改数据中的一些元素,这似乎改变了值。

然后我需要做的是将此变量“数据”与更改一起上传回我的服务器。我有这段代码可以发回 -

$.ajax({ 
    url: "saveXml.php", 
    type: "POST", 
    contentType: "text/xml", 
    processData: true, 
    data: data,
    success: function(){
        console.log('should have saved')
    } 
});

我的 php 脚本看起来像这样。

<?php
$xml = $_POST['data'];
$file = fopen("data/data.xml","w");
fwrite($file, $xml);
fclose($file);
echo "ok";
?>

也许我遗漏了一些东西,也许我需要先对 xml 进行编码,但找不到这样的例子。但是,当它似乎加载并且我得到一个成功回调但我的 xml 文件现在是空的。

4

1 回答 1

0

不确定我是否完全掌握了您需要的东西,但是您应该这样做:

阿贾克斯

     $.ajax({
        type: "GET",
        url: "data/data.xml",
        dataType: "xml",
        error:function(response){ 
        console.log(response);
         },
        success: function (xml) {

            init(xml); 
        }
    });

 function init(xml){
         $.ajax({ 
                url: "saveXml.php", 
                type: "POST", 
                contentType: "text/xml", 
                dataType:'xml',
                processData: true, 
                data: {'xml':xml},
                error:function(response){ 
                console.log(response);
                },
                success: function(data){
                    console.log(data); //check your console.log now
                } 
            });
    }

PHP

 <?php
    $xml = $_POST['xml'];
    //you don't need to open the file, you have the source of the file in $_POST['data']
    echo $xml;
    ?>
于 2012-11-23T09:23:00.197 回答