How to change the value of an xml node with jquery?
This may be a simple question though can´t figure out how to do it. I want to load and modify an xml file, then save the xml through php.
Here is the code:
$.ajax({
type: "GET",
url: "menu.xml",
dataType: "xml"开发者_开发百科,
success: function(xml) {
$(xml).find('menu_item').each(function(){
//change the value of menu_item
$(this).empty();
$(this).text($("textarea").attr("value"));
//send xml to php
$.post('save_xml.php', $(xml), function(data){alert("Data Loaded: " + data);});
}
}
});
Here is how save_xml.php looks like:
<?php
$xml = $GLOBALS["HTTP_RAW_POST_DATA"];
$file = fopen("file.xml","w");
fwrite($file, $xml);
fclose($file);
echo "ok";
?>
Is this what you are looking for?
$(this)
is each of the menu_items
you iterate over with .each()
Your code becomes
$(xml).find('menu_item').each(function(){
$(this).text("New Value");
});
Hope this helps
EDIT
To post this back to the server I would do this:
$.post('save_xml.php', { xml: $(xml)}, function(data){alert("Data Loaded: " + data);});
and then in the PHP file
<?php
$xml = $_POST['xml'];
$file = fopen("file.xml","w");
fwrite($file, $xml);
fclose($file);
echo "ok";
?>
This code is untested, and there could be any number of reasons it doesn't work, write permissions on the files etc.
精彩评论