我正在尝试使用PHP在LAMP堆栈上从html表单输入生成XML文档。我可以生成XML文档,但是似乎在从html字段中获取数据方面存在问题。
我试图在我的PHP代码中以文本项的形式调用$_POST['itemName']
,但是遇到一条错误消息,提示itemName
未定义。请参阅下面的index.html
部分文档和完整的generate.php
代码:
Here is the full `generate.php` code:
<?php
$dom = new DomDocument('1.0');
$orders = $dom->appendChild($dom->createElement('orders'));
$order = $orders->appendChild($dom->createElement('order'));
$item = $order->appendChild($dom->createElement('item'));
$item->appendChild($dom->createTextNode($_POST['itemName']));
$dom->formatOutput = true;
$orders = $dom->saveXML();
$dom->save('orders.xml');
?>
这是index.html
中的表单部分:
<form name="form1" action="generate.php" method="post">
<input type="text" class="form-control" id="itemName"
placeholder="Item Name">
<button type='submit' action='submit' name='generate'>Generate XML</button>
</form>
我希望得到这样的XML文档:
<?xml version="1.0"?>
<orders>
<order>
<item>text from form field</item>
</order>
</orders>
我得到的是浏览器中显示以下错误:
Notice: Undefined index: itemName in generate.php on line 17
我已经在本地计算机上测试了Apache Server和PHP,并且可以正常工作,所以问题肯定出在我的代码内。
我觉得这真的很简单,并且犯了一个非常明显的错误,但是我并不真正了解PHP,所以这对我来说是全新的。
谢谢!