如何使用JQuery获取HTML表单数据并写入XML?

时间:2012-10-25 16:02:01

标签: javascript jquery html xml

我的表格看起来像这样:

<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,否则我会。

3 个答案:

答案 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>";
    ...
}