使用具有覆盖功能

时间:2015-06-04 14:39:27

标签: php html xml

我正在尝试将表单数据保存在exertnal XML文件中。 XML文件已经存在,并且已经填充了一些数据。

我需要将表单数据保存到XML文件,但是如果XML文件中的部分与新表单提交相同,则需要每次都添加新记录。如果发生这种情况,则需要修改XML文件中具有相同数据的记录。

因此,如果有人为Mario Bros命名并首次填写表单,那么它将在XML文件中创建一条新记录。如果同样的Mario Bros重新填写表单中具有相同名称但位置不同的“位置”,它将覆盖XML文件中已存在的Mario Bros。

这是我的HTML代码:

<form>
<table width="50%" align="center" cellpadding="2" cellspacing="0">
  <tr>
    <td> First name:</td><td> <input type="text" name="firstname"></td>
    <td> Last name:</td><td>  <input type="text" name="lastname"></td>
  </tr>
  <tr>
    <td> Location:</td><td> <input type="text" name="location"></td>
    <td> Report:</td><td> <select name="report">
                             <option value="Wind Damage" selected>Wind Damage</option>
                             <option value="Hail">Hail</option>
                             <option value="Flooding">Flooding</option>
                             <option value="Power Outage">Power Outage</option>
                             <option value="General">General</option>
                          </select>
    </td>
  </tr>
  <tr>
     <td> Description: </td><td colspan="4"> <textarea rows="5" cols="65" name="desc" onfocus="this.value=''">Enter report description</textarea></td>
  </tr>
  <tr>
     <td colspan="4" style="text-align:center;"><input type="submit" name="lsr-submit" value="Submit"></td>
  </tr>
</table>
</form>

这是我的PHP代码

<?php

$str = '<?xml version="1.0" encoding="UTF-8"?><entrys></entrys>';
$xml = simplexml_load_string($str);

$fname = $_POST['firstname'];
$lname = $_POST['lastname'];
$location = $_POST['location'];
$report = $_POST['report'];
$description = $_POST['desc'];

$fname = htmlentities($fname, ENT_COMPAT, 'UTF-8', false);
$lname = htmlentities($lname, ENT_COMPAT, 'UTF-8', false);
$location = htmlentities($location, ENT_COMPAT, 'UTF-8', false);
$report = htmlentities($report, ENT_COMPAT, 'UTF-8', false);
$description = htmlentities($description, ENT_COMPAT, 'UTF-8', false);

$xml->reports = "";
$xml->reports->addChild('fname', $fname);
$xml->reports->addChild('lname', $lname);
$xml->reports->addChild('location', $location);
$xml->reports->addChild('report', $report);
$xml->reports->addChild('description', $description);

$doc = new DOMDocument('1.0');
$doc->formatOutput = true;
$doc->preserveWhiteSpace = true;
$doc->loadXML($xml->asXML(), LIBXML_NOBLANKS);
$doc->save('test2.xml');

?>

我做错了什么?我似乎无法找到一种方法使它工作。非常感谢!

0 个答案:

没有答案