我正在开发一个帮助票项目,除了这个方面,我已经有很大一部分工作了。我想将所有票证信息(从XML文件)显示到屏幕,但随后能够将带有新注释的注释附加到票证中。我打印所有的票证信息没有问题,它附加它是问题。一,因为我的$ _GET数组在提交后消失了,我丢失了故障单信息,其中两个我无法弄清楚如何在我的XML中为特定故障单的评论部分添加新评论。下面是代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>
Kapsiak's Ticket Closer
</title>
<meta charset="utf-8">
<link rel="stylesheet" href="site.css">
</head>
<body>
<?php include 'header.php'; ?>
<?php include 'nav.php'; ?>
<main>
<div class="row">
<div class="sidel">
</div>
<main>
<div class="row">
<div class="sidel">
</div>
<div class="main">
<?php
// read all the ticket information to screen
$xml=simplexml_load_file("tickets.xml") or die ("Error: Cannot Display Tickets");
foreach($xml->children() as $ticket) {
if ($ticket['id'] == $_GET['id']) {
echo "<div class='helpLeft'>";
echo "<h3>Requester</h3>";
echo "<p>First Name: " . $ticket->fname . "</p>";
echo "<p>Last Name: " . $ticket->lname . "</p>";
echo "<p>Phone: " . $ticket->phone . "</p>";
echo "<p>School: " . $ticket->loc . "</p>";
echo "<p>Room: " . $ticket->room . "</p>";
echo "</div>";
echo "<div class='helpLeft'>";
echo "<h3>Device Information</h3>";
echo "<p>Device Type: " . $ticket->device . "</p>";
echo "<p>Manufacturer: " . $ticket->manu . "</p>";
echo "<p>Model: " . $ticket->model . "</p>";
echo "<p>Serial: " . $ticket->serial . "</p>";
echo "<p>Status: " . $ticket->status . "</p>";
echo "</div>";
echo "<div class='comments'>";
echo "<h3>Comments</h3>";
// check for new comments
if (!empty($_POST)){
$ticket->appendChild('comments', $_POST(comments));
}
echo "<p>" . $ticket->comments . "</p>";
echo "</div>";
}
}
echo "<br>";
?>
<div class="comments">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<textarea name="comments" id="comments" cols="60" rows="10" required> </textarea><br>
<select size="1" name="status" id="status" required>
<option value="open">Select New Status </option>
<option value="In Progess">In Progress </option>
<option value="Awaiting Reply">Awaiting Reply </option>
<option value="Closed">Closed </option>
</select>
<input type="submit" value="Update"/>
</form>
</div>
</div>
<div class="sider">
</div>
</div>
</main>
<?php include 'footer.php'; ?>
</body>
</html>
答案 0 :(得分:1)
在布劳哈利的帮助下,我能够弄清楚这个问题的其余部分。 SimpleXML不需要appendchild()和addchild()。我不得不使用
将新变量写入XML$ticket->comments = $oldCom . " " . $_POST['comments'];
然后我只需要使用
保存XMLfile_put_contents("tickets.xml", $xml->asXML());