Как изменить значение узла xml с помощью jquery? - PullRequest
2 голосов
/ 12 января 2011

Это может быть простой вопрос, хотя не могу понять, как это сделать. Я хочу загрузить и изменить файл XML, а затем сохранить XML через php.

Вот код:

 $.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);});
   }

  }
 });

Вот как выглядит save_xml.php:

<?php

    $xml = $GLOBALS["HTTP_RAW_POST_DATA"];
    $file = fopen("file.xml","w");
    fwrite($file, $xml);
    fclose($file);
    echo "ok";

?> 

1 Ответ

2 голосов
/ 12 января 2011

Это то, что вы ищете?

$(this) - это каждый из menu_items, который вы повторяете с .each()

Ваш код становится

$(xml).find('menu_item').each(function(){
   $(this).text("New Value");
});

Надеюсь, это поможет

EDIT

Чтобы отправить это обратно на сервер, я бы сделал это:

$.post('save_xml.php', { xml: $(xml)}, function(data){alert("Data Loaded: " + data);});

и затем в файле PHP

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

Этот код не протестирован, и может быть множество причин, по которым он не работает, разрешения на запись в файлы и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...