我试图将HTML表单的结果保存到XML文件中以供以后处理。表单有不幸的是,它看起来像我一次只能保存一个答案,但我想写所有的答案在XML文件中。这里是我的尝试:将HTML表单数据保存到XML文件
<?php
if(isset($_POST['submit']))
{
$mileage = $_POST['form'];
$file = fopen("data.xml","r+");
fwrite($file,$mileage);
fclose($file);
print_r(error_get_last());
}
?>
<form action= "" method="post" name="form">
<input type="hidden" value = "<?xml version='1.0' encoding='UTF-8'?>"/>
<input type="hidden" value="<miles>"/>
<span class="XMLsimpleType" onclick="selectelm(this, event);" ondblclick="selectelm(this, event);">
<label>Car: </label>
<input type="text" class="car" name="car" value="" onfocus="focusGained(this)" onchange="textChanged(this)" /></span>
<br/></span>
<br>
<span class="XMLsimpleType" onclick="selectelm(this, event);" ondblclick="selectelm(this, event);">
<span class="bike">
<label>Bike: </label>
<input type="text" class="bike" name="bike" value="" onfocus="focusGained(this)" onchange="textChanged(this)" /></span>
<br/></span>
<br>
<input type="hidden" value="</miles>"/>
<input type="submit" name="submit" value="submit"><br>
</form>
的形式应该创建一个类似如下的格式正确的简单的XML文件:
<?xml version='1.0' encoding='UTF-8'?>
<miles>
<car>123</car>
<bike>245</bike>
</miles>
我已经花了四个小时看着这个,我知道我可以简化它,但首先我想只是让它工作。我可以编写一个表单条目,但不能包含带有XML信息的整个表单。我做错了什么?
你无法按照您尝试执行的方式处理表单。首先,您的$ _POST数组只包含具有name属性的输入元素(即汽车,自行车并在您的表单中提交)。答案是将您的$ _POST数组转换为有效的XML结构,使用SimpleXMLElement,请参阅链接[link] https://stackoverflow.com/questions/1397036/how-to-convert-array-to-simplexml – lovelace
I试图将所有输入元素合并到一个$ _Post中,使用句点,逗号和空格,但都不起作用。我会研究SimpleXMLElement,除非有更简单的方法来组合东西。 –