我的表格看起来像这样:
<form method="post" id="aodform">
<label for="a">Animal:</label>
<input class="input" type="text" name="a"/>
<label for="s">Sausage:</label>
<input class="input" type="text" name="s"/>
<label for="g">Bird:</label>
<input class="input" type="text" name="g"/>
<label for="d">Dessert:</label>
<input class="input" type="text" name="d"/>
<input id="submitter" type="submit"/>
</form>
我需要在表单中输入输入的值,并在一个如下所示的EXISTING XML文件中覆盖(替换)相应节点的文本值:
<aod>
<animal>x</animal>
<sausage>x</sausage>
<bird>x</bird>
<dessert>x</dessert>
</aod>
现在,我知道我可以使用
$("#aodform").submit();
在Jquery中实现表单提交,但在此之后我就输了!我试图弄清楚如何获取这些表单值,将它们作为变量存储在一个函数中,然后写入XML文件(全部在Jquery中)。
我已经搜遍了整个谷歌盒子,发现了类似的主题,但不太相似,足以帮助我解决问题。有人请帮帮我吗?谢谢!
P.S。我不能使用任何服务器端语言,比如PHP,否则我会。
答案 0 :(得分:3)
由于安全问题,您将无法使用javascript / jquery创建或编辑本地XML文件。想象一下,去一个网站,网站管理员写了一些代码,知道是什么,并把它放在你的计算机上的文件中......
使用javascript写入本地文件的唯一方法是使用cookie或HTML5 localStorage。
localStorage将允许您存储字符串键和数组值和/或属性名称和对象值。
如果您需要XML文件,则必须调用服务器端脚本,该脚本有权在服务器上写入文件,然后您可以通过它的URL访问该文件。
答案 1 :(得分:1)
客户端的jQuery和Javascript无法持久存储到服务器端。它无法写入代码。您必须获得对服务器端语言的访问权限,或者使用某些基于云的服务(例如,您可以通过Javascript API调用,持久保存到Amazon 3S,MongoDB或其他类似的东西)云服务)。
虽然您可以使用Javascript / jQuery在客户端构建XML对象,但您必须将其提交到某些服务器端脚本以将其保存到文件中。
很抱歉成为坏消息的承担者,但是如果你想要完成这项任务,你需要更全面的功能。
答案 2 :(得分:0)
您必须在隐藏的输入中发送标签等:
<form method="post" id="aodform">
<label for="a">Animal:</label>
<input type="hidden" name="a_label" value="Animal"/>
<input class="input" type="text" name="a"/>
<label for="s">Sausage:</label>
<input type="hidden" name="s_label" value="sausage"/>
<input class="input" type="text" name="s"/>
<label for="g">Bird:</label>
<input type="hidden" name="g_label" value="bird"/>
<input class="input" type="text" name="g"/>
<label for="d">Dessert:</label>
<input type="hidden" name="d_label" value="dessert"/>
<input class="input" type="text" name="d"/>
<input id="submitter" type="submit"/>
</form>
然后在PHP中访问对:
$name = "a"; // "s", "g", "d"
$tag = $_POST[$name.'_label'];
$value = $_POST[$name];
$xml_element = "<$tag>$value</$tag>";
OR
使用相同的名称作为标签,然后使用:
foreach($_POST as $key => $value)
{
$xml_element = "<$key>$value</$key>";
...
}