文本框数据在php和ajax中的post变量中不可用
我正在尝试编写一个表单,它有多个文本框,而不使用ajax引用页面,然后在每个文本框之后,都会有一个名为add的链接,该链接调用另一个名为addnew.php的php 在addnew.php中,我们将数据添加到数据库(postgres)。但我在获取post变量本身时遇到了问题。为了进行测试,我在脚本中添加了警报 这是我的表单代码(一旦工作正常,我将更改为多个文本框) 脚本代码文本框数据在php和ajax中的post变量中不可用,php,ajax,variables,post,Php,Ajax,Variables,Post,我正在尝试编写一个表单,它有多个文本框,而不使用ajax引用页面,然后在每个文本框之后,都会有一个名为add的链接,该链接调用另一个名为addnew.php的php 在addnew.php中,我们将数据添加到数据库(postgres)。但我在获取post变量本身时遇到了问题。为了进行测试,我在脚本中添加了警报 这是我的表单代码(一旦工作正常,我将更改为多个文本框) 脚本代码 <script type='text/javascript'> //<![CDATA[ $(window
<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>
但是在addnew.php文件中,我没有得到$u POST(['da'])。这意味着数据没有传递到文件中,或者ajax代码有问题,最终我可以拥有多个具有相同id的表单。如果没有,那么在提交表单时,我如何在“添加”按钮之前发送唯一的文本框数据。没有“提交”。替换单击元素:
<a href="#" class="add">Add</a>
使用“提交”按钮:
<input type="submit" class="add" value="Add" />
或
我相信$(window).load()将无法工作。jQueryLoad方法使用ajax从url获取数据,url是load方法的第一个参数,然后在将ajax响应加载到调用元素中后,它可以执行oncomplete函数。看起来好像您只为load方法放置了一个oncomplete函数,而没有要ajaxed的url。我弄错了吗?看
我还没有完全考虑清楚,但您可能只想删除第一个级别($(window.load()),然后看看会发生什么。如果这样做,代码似乎会在页面“就绪”后添加单击处理程序。始终可以动态更改表单元素的目标/操作;因为您使用的是jQuery,所以应该是这样的: $('#form').attr('action',window.location.href)
这将设置一个表单(ID为“form”),使其具有针对页面URL的目标操作。只要将第二个参数传递给attr(),您就可以重置该值-这基本上适用于任何内容(您可以随时更改链接的href等)此方法仅在指定了target时有效。我尝试的是在ajax期间设置url,因为如果我稍后添加更多按钮,则在ajax调用期间可以更改url。是的$(window).load()根本不需要。但实际的愚蠢错误是addnew.php页面开始时,<和php之间只有一个空格。我使用了netbeans php ide,它根本不显示错误。所以现在解决了。
<textbox1 data> <add button>
<textbox1 data> <add button>
<textbox1 data> <add button>
...
<textbox10 data> <add button>
alert(da);
<a href="#" class="add">Add</a>
<input type="submit" class="add" value="Add" />
<a href="#" class="add" onclick="this.form.submit();">Add</a>