2

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ファイルの値が以前のものである場合は削除されます。

アップデート

<welcome>フォームは機能するようになりましたが、リセットボタンを追加しました。タグのみが含まれるように、xmlファイルをクリアするために必要です。に変更$data->item->name=$_POST['welcome'];しまし$data='';たが、テキストが削除され、タグが保持されます。

4

1 に答える 1

4

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);

編集:コメントの質問について:

<?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>
于 2012-09-20T14:01:05.370 に答える