2013-01-15 206 views
1

我正在瀏覽其他問題和帖子,但找不到答案。

我需要將數據發送到PHP文件,該文件將數據保存到服務器。有些數據只是字符串變量,其中一個變量是XML數據。我試着用下面的代碼來做到這一點:

$.post(
    "save.php", 
    { 
     userId: _UserId, 
     pName: _pName, 
     pId: _pId, 
     xml: $(_xml).find("main").text() 
    }, 
    function() { 
     console.log("Saved"); 
    } 
); 

所以_xml是一個XML文檔,我試圖保存在服務器中的整個XML。開機自檢正常,但問題是它只保存文本,沒有<>括號。

如何正確地將XML數據發送到服務器?任何幫助將不勝感激。

回答

2

POST可以工作,但問題是它只保存文本,沒有括號。

嘗試使用html()代替。我知道這個名字在這個例子中可能不正確,但是底層方法不會刪除當前包含的元素。

xml: $(_xml).find("main").html() 
+0

它不起作用,因爲_xml不是一個DOM元素,也不包含HTML ...... – Light

+0

'_xml'不需要是它的DOM元素,也不需要包含有效的HTML 。爲什麼它不起作用? –

0

試試這個方法:

$.ajax({ 
type : "POST", 
url : "Save.php", 
data : { 
    method : "Save", 
    userId: _UserId, 
    pName: _pName, 
    pId: _pId, 
    xml: escape(xmlString) 
}, 
dataType : "json", 
cache : false, 
success : function(data) { 
// Process return status data here 
} 
}); 

注意:您需要在服務器端的XML字符串解碼。

+0

謝謝,但我如何將其餘的變量添加到你的函數? (userId,pName,pId) – Light

+0

我修改了片段。請看一看。 –

+0

在嘗試你的答案之前,我能夠通過使用這個函數發佈帶有括號的XML:'function XmlSerialize(xml){var s;}} (typeof XMLSerializer ===「function」){var x = new XMLSerializer(); s = x.serializeToString(xml);其他{ s = xml.xml; } return s }' – Light

相關問題