[英]Html form to PHP XML DOMDocument - Not Updating XML
我是DOMDocument和密集型PHP的新手。 請原諒我的無知。 我似乎無法讓Process.php寫入XML。 我見過其他有關同一主題的文章,但它們並沒有幫助我解決我的問題。 只是找不到我做錯了。 任何幫助將非常感激!
這是HTML表單form.html。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
</head>
<body>
<form name="digitalsignage" action="process.php" onsubmit="return defaultagree(this)" method="post">
<table align="center" cellpadding="2" cellspacing="0" width="50%">
<tbody><tr>
<td> Event1:</td><td>
<input name="event1" value="Unknown" type="text"> </td>
<td> Event2:</td><td>
<input name="event2" value="Unknown" type="text"> </td>
<td> Event3:</td><td>
<input name="event3" value="Unknown" type="text"> </td>
<td> Event4:</td><td>
<input name="event4" value="Unknown" type="text"> </td>
<td> Event5:</td><td>
<input name="event5" value="Unknown" type="text"> </td>
</tr>
<tr>
<td colspan="4" style="text-align:center;">
<input name="lsr-submit" value="Submit" type="submit"></td>
</tr>
</tbody></table>
</form>
</body>
</html>
XML文件file.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<atom:link href="http://www.SERVER-URL-OF-FEED" rel="self" type="application/rss+xml" />
<title>Todays Events</title>
<item>
<description>
<event1>Event 1</event1>
<event2>Event 2</event2>
<event3>Event 3</event3>
<event4>Event 4</event4>
<event5>Event 5</event5>
</reports>
</item>
</channel>
</rss>
PHP,process.php
<?php
$event1 = $_POST['event1'];
$event2 = $_POST['event2'];
$event3 = $_POST['event3'];
$event4 = $_POST['event4'];
$event5 = $_POST['event5'];
$xml = new DOMDocument();
$xml->load('file.xml');
$xml->formatOutput = true;
$xml->preserveWhiteSpace = false;
$element = $xml->getElementsByTagName('description')->item(0);
if ($element->length > 0) {
$event1 = $element->getElementsByTagName('event1')->item(0);
$event2 = $element->getElementsByTagName('event2')->item(0);
$event3 = $element->getElementsByTagName('event3')->item(0);
$event4 = $element->getElementsByTagName('event4')->item(0);
$event5 = $element->getElementsByTagName('event5')->item(0);
$newItem = $xml->createElement('description');
$newItem->appendChild($xml->createElement('event1', $_POST['event1']));
$newItem->appendChild($xml->createElement('event2', $_POST['event2']));
$newItem->appendChild($xml->createElement('event3', $_POST['event3']));
$newItem->appendChild($xml->createElement('event4', $_POST['event4']));
$newItem->appendChild($xml->createElement('event5', $_POST['event5']));
$xml->getElementsByTagName('item')->item(0)->appendChild($newItem);
}
$xml->save('file.xml');
echo "Data has been written.";
?>
您的代碼中有一些其他基本問題:
$result = $xml->save('file.xml');
if (!$result) {
throw new UnexepectedValueException(
'Failed to write file "file.xml"'
);
}
echo "\n<hr>\nthe following file has been written:\n<hr>\n";
echo nl2br(htmlspecialchars($xml->saveXML())), "\n<hr>\n";
想象盡可能多的可能性使代碼可見並“驗證”代碼工作,並盡早顯示錯誤。
你可以...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.