【发布时间】:2011-05-23 21:50:51
【问题描述】:
我正在尝试编写一个具有多个文本框的表单,而无需使用 ajax 引用页面,然后在每个文本框之后将有一个名为 add 的链接,其中 POST 调用另一个名为 addnew.php 的 php。
在 addnew.php 中,我们将数据添加到数据库(postgres)中。但是我在获取 post 变量本身时遇到了问题。为了测试,我在脚本中添加了警报。
这是我的表单代码(一旦工作正常,我将更改多个文本框)
脚本代码
<script type='text/javascript'>
//<![CDATA[
$(window).load(function() {
jQuery(document).ready(function() {
jQuery('.add').live('click', function(event) {
//var da='da='+ $('#da').attr('value');
//var da = 'test';
var da = $('form#myform').serialize();
alert(da);
$.ajax({
type: "POST",
url: "addnew.php",
data:da,
success: function(data) {
if (data === "ok") {
$(this).parent().fadeOut();
$('#results').html(data);
}
else {
alert(data);
}
}
});
});
});
});
//]]>
</script>
表单代码
<body>
<?php
for ($i=1;$i<2;++$i) {//currently only one textbox for testing purpose
echo "<form name='myform' id='myform'>";
echo "<input name='da' type='text' id='da' value='none'>";
echo "<a href='#' class='add'>Add</a>";
echo "</form>";
}
?>
<div id="results"><div>
</body>
添加new.php代码
<? php
if( isset($_POST['da']) )
{
echo (da);
}
?>
页面渲染的时候会有这样的。
<textbox1 data> <add button>
<textbox1 data> <add button>
<textbox1 data> <add button>
...
<textbox10 data> <add button>
我正在尝试的是
- 使用 for 循环创建每个文本框并在每个表单内动态添加按钮对。 (为了测试,我只创建了一对)。我应该为每一对设置表格吗?
- 点击添加时文本框 (#da) 中的值应通过 ajax 发送到 addnew.php。
以下代码正确显示数据
alert(da);
但在 addnew.php 文件中我没有得到 $_POST(['da'])。这是否意味着数据没有传递到文件或者有错误的 ajax 代码,最后我可以有多个具有相同 id 的表单。如果不是,那么我如何在提交表单时发送唯一的一个文本框数据,即在添加按钮之前。
【问题讨论】: