2013-01-15 5 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 на сервере. POST работает, но проблема в том, что он сохраняет только текст без скобок <>.

Как правильно отправить 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; if (typeof XMLSerializer === "function") { var x = new XMLSerializer(); s = x.serializeToString (xml); } else { s = xml.xml; } return s } ' – Light

Смежные вопросы