2012-11-23 43 views
2

我目前正在編寫一個使用xml的應用程序。我訪問使用該XML文件 -使用PHP和jQuery將xml數據上載回服務器

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

我再更改使用$(數據)的數據中的幾個要素.find等,這似乎改變數值。

然後,我需要做的就是將這個變量'data'上傳到我的服務器上並進行修改。我有這一點的代碼發回它 -

$.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文件現在是空的。

回答

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; 
    ?> 
+0

我在控制檯中的數據。日誌並顯示在'p.fn.p.init [1] '下是這樣的嗎?但它仍然引發錯誤,並在ajax請求@Ispuk – darylhedley

+0

檢查我剛編輯我的例子,真的不知道什麼是'p.fn.p.init [1]',它似乎是一個數組索引,嘗試var_dump( )而不是回聲;) – sbaaaang

+0

確定,而不是'p.fn.p.init [1]'我現在變得'#文檔'在console.log和'未捕獲的TypeError:非法調用'@Ispuk – darylhedley

相關問題