0

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

<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 中)。

我搜索了整个谷歌框,发现了类似的主题,但不太相似,不足以帮助我的情况。有人可以帮助我吗?谢谢!

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

4

3 回答 3

3

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

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

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

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

于 2012-10-25T16:39:24.447 回答
1

客户端的 jQuery 和 Javascript 不能持久化到服务器端。它无权写入代码。您将必须获得对服务器端语言的访问权限,或使用一些基于云的服务(例如,您可以通过 Javascript API 调用在云服务)。

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

很抱歉成为坏消息的承担者,但如果您希望能够完成这项工作,您将需要进入功能更全面的东西。

于 2012-10-25T16:06:12.640 回答
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>";

或者

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

foreach($_POST as $key => $value)    
{
    $xml_element = "<$key>$value</$key>";
    ...
}
于 2012-10-25T16:10:44.787 回答