0

我被困住了,不确定。该网页正在显示一个基于现有 XML 文件的表格。

我只想提供在表格中添加新行的选项。我读到我不能使用 JS 来写外部 XML 文件,所以我必须使用 PHP 脚本。

问题是我不确定实现逻辑。这是我的观点:

  1. 该页面显示为一个空表(完成)。
  2. Javascript 用 XML 文件数据填充表格(完成)。
  3. 用户填写 HTML 表单字段。
  4. 当用户按下“提交”按钮时,javascript 会捕获字段内容并将它们发送到 PHP 脚本(POST 方法)(尚未开发)。
  5. PHP 捕获 POST 数据,然后将它们附加到 XML 文件(尚未开发)。
  6. 完成后,javascript 使用最新更新的 XML 文件(尚未开发)刷新表。

我这样做对吗?谢谢您的帮助!

--

编辑

感谢大家对我们的帮助。不幸的是,我无法让这件事发挥作用。无法检索表单值(pEnseigne 未定义)

这是 HTML 表单(摘录)

<form class="form-inline" name="newlineform">
<input type="text" class="input-small" placeholder="Enseigne" name="enseigne"/>
<button type="submit" class="btn btn-primary" id="zou">Zou!</button>
</form>

这是 JS 函数(摘录)

$('#zou').on('click', function(){
exportLine();
$('.form-inline').hide();
$('#ajouter').fadeIn();
return false
});

function exportLine(){
var pEnseigne = $('#enseigne').val();
var xmlhttp;
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
loadData();
}}
xmlhttp.open("POST","php/form-process.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fenseigne="+pEnseigne);
}

还有 PHP 的东西

<?php
$enseigne = htmlentities($_POST['fenseigne']);
$lignes = simplexml_load_file('../list.xml');
$lignes->ligne->addChild("enseigne",$enseigne);
?>

你能再帮我一次吗?

4

2 回答 2

1

我认为你的一般过程是合理的。但是,我不会直接发布表单,而是使用 javascript 来捕获表单并发送它。这允许您设置一个 javascript 方法来等待 php 在触发更新之前返回状态代码。

请参阅此处有关异步发送请求并使用处理程序处理结果的信息。

http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp

于 2013-10-07T14:35:51.323 回答
0

听起来不错。看看使用AJAX执行6。

于 2013-10-07T14:30:41.510 回答