Я пытаюсь создать форму, которая позволит вам редактировать содержимое тега xml. В настоящее время у меня есть form.php:
<?php $data=simplexml_load_file('welcome.xml'); $welcome=$data->item->name; ?> <form method="post"> <textarea name="name"><?php echo $welcome ?></textarea> <br> <input type="submit" name="submit" value="submit"> </form> <?php if(isset($_POST['submit'])) { $data=simplexml_load_file('welcome.xml'); $data->item->name=$_POST['name']; $handle=fopen("welcome.xml","wb"); fwrite($handle,$xml->asXML()); fclose($handle); } ?>
и welcome.xml:
<welcome> <item> <name>$welcome</name> </item> </welcome>
когда я нажимаю кнопку «Отправить», он не сохраняет введенные данные, он просто обновляет страницу и удаляет все значения в файле xml раньше.
ОБНОВИТЬ
Форма работает сейчас, но я добавил кнопку сброса, мне нужно очистить XML-файл, чтобы он имел только теги <welcome>
. Я изменил $data->item->name=$_POST['welcome'];
до $data='';
но он удаляет текст и сохраняет метки по-прежнему.
Вы можете сделать это с помощью simplexml.
Чтобы прочитать данные из xml:
$data = simplexml_load_file('welcome.xml'); $welcome = $data->item[0]->name;
И написать данные:
$data = simplexml_load_file('welcome.xml'); $data->item[0]->name = $_POST['welcome']; $handle = fopen("welcome.xml", "wb"); fwrite($handle, $xml->asXML()); fclose($handle);
EDIT: На вопрос в комментарии:
<?php if(isset($_POST['submit'])) { $data=simplexml_load_file('welcome.xml'); $data->item->name=$_POST['name']; $handle=fopen("welcome.xml","wb"); fwrite($handle,$data->asXML()); fclose($handle); } $data=simplexml_load_file('welcome.xml'); $welcome=$data->item->name; ?> <form method="post"> <textarea name="name"><?php echo $welcome ?></textarea> <br> <input type="submit" name="submit" value="submit"> </form>