文本框数据在php和ajax中的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

我正在尝试编写一个表单,它有多个文本框,而不使用ajax引用页面,然后在每个文本框之后,都会有一个名为add的链接,该链接调用另一个名为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>
但是在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>