繁体   English   中英

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

[英]How to take HTML form data and write to XML using JQuery?

我有一个看起来像这样的表格:

<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>

我需要采用形式输入的值,并在一个现成的XML文件中覆盖(替换)相应节点的文本值,如下所示:

<aod>
<animal>x</animal>
<sausage>x</sausage>
<bird>x</bird>
<dessert>x</dessert>
</aod>

现在,我知道我可以使用

$("#aodform").submit();

在Jquery中实现表单提交,但是在此之后我迷路了! 我试图弄清楚如何获得这些表单值,将它们作为变量存储在一个函数中,然后将其写入XML文件(全部在Jquery中)。

我在整个Google框内进行了搜索,发现了相似的主题,但不够相似,不足以对我的情况有所帮助。 有人可以帮我吗? 谢谢!

PS我不能使用任何服务器端语言,例如PHP,否则我会使用。

出于安全考虑,您将无法使用javascript / jquery创建或编辑本地XML文件。 想象一下去一个网站,网站管理员写了一些代码,知道谁知道什么,然后将其放在您计算机上的文件中...

使用javascript写入本地文件的唯一方法是使用cookie或HTML5 localStorage

localStorage将允许您存储字符串键和数组的值和/或属性名称和对象的值。

如果需要XML文件,则必须调用有权在服务器上写入文件的服务器端脚本,然后可以通过其url访问该文件。

客户端上的jQuery和Javascript无法持久到服务器端。 它无权编写代码。 您将必须获得对服务器端语言的访问权限,或使用某些基于云的服务(例如,您可以通过Javascript API调用,坚持使用Amazon 3S或MongoDB或类似性质的东西)。云服务)。

尽管您可以使用Javascript / jQuery在客户端中构造XML对象,但随后您必须将其提交到某些服务器端脚本以将其保存到文件中。

不好意思,这是不好的消息,但是,如果您希望能够做到这一点,则需要深入了解一些功能。

您必须在隐藏的输入等中发送标签:

<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>";

要么

使用与标签相同的名称,然后使用:

foreach($_POST as $key => $value)    
{
    $xml_element = "<$key>$value</$key>";
    ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM