Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP从不接收嵌套的jQuery$.post数据_Php_Jquery_Forms - Fatal编程技术网

PHP从不接收嵌套的jQuery$.post数据

PHP从不接收嵌套的jQuery$.post数据,php,jquery,forms,Php,Jquery,Forms,我试图将简单表单数据从索引页发送到PHP函数checklogin.PHP。我发现没有数据,序列化的,甚至是直接的输入,通过PHP函数。我知道jQuery函数正在被调用,我也知道PHP文件正在被调用,因为我在其中放入了各种post函数 当我使用action=“checklogin.php”直接从表单提交数据时,$\u POST数据被正确接收,我可以处理它。但是,当使用jQuery拦截表单提交时,不会收到任何数据 需要注意的一点是,实际的登录表单HTML是从另一个页面插入的,以允许我处理多个页面,而

我试图将简单表单数据从索引页发送到PHP函数checklogin.PHP。我发现没有数据,序列化的,甚至是直接的输入,通过PHP函数。我知道jQuery函数正在被调用,我也知道PHP文件正在被调用,因为我在其中放入了各种post函数

当我使用
action=“checklogin.php”
直接从表单提交数据时,$\u POST数据被正确接收,我可以处理它。但是,当使用jQuery拦截表单提交时,不会收到任何数据

需要注意的一点是,实际的登录表单HTML是从另一个页面插入的,以允许我处理多个页面,而不是一个大的索引文件

表单-login.php

<form id="loginform" name="loginform" method="post">
    <td>
        <table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
            <tr>
                <td colspan="3"><strong>Member Login</strong></td>
            </tr>
            <tr>
                <td width="78">Username</td>
                <td width="6">:</td>
                <td width="294"><input name="username" type="text" id="username"></td>
            </tr>
            <tr>
                <td>Password</td>
                <td>:</td>
                <td><input name="password" type="text" id="password"></td>
            </tr>
            <tr>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
                <td><input type="submit" name="Submit" value="Login"></td>
            </tr>
        </table>
   </td>
</form>
$( document ).ready(function() {                
    $.post("login.php", function(data) { // retrieve login form from other page.
        $("#page5").html(data); 
        $('#loginform').submit(function () {
            event.preventDefault();
            var formData = $(this).serialize();

            console.log("Form Data: " + formData); // this is not blank

            $.post("checklogin.php", formData, function(data) {
                // post-login actions
            })

            });
        });
    })
});
checklogin.php(在问题解决之前暂时)

使用

由于元素是动态添加的,您无法将事件直接绑定到它们。因此您必须使用

还是更好地利用

$('#page5').on('submit','#loginform',function () { //code here }
语法

$( elements ).on( events, selector, data, handler );

另外:$('loginform').submit(函数(){event.preventDefault();这应该是:$('loginform').submit(函数(事件){event.preventDefault());@Boaz看到他的jQuery,他正在客户端加载表单。你是对的,但是当
submit
处理程序绑定时,表单肯定存在。OP还说处理程序已经执行。处理程序确实执行了,所以这不是问题所在。虽然这允许我将代码移到嵌套的第一个$.post函数之外,所以它可以谢谢。试试
$.post(“checklogin.php”,formData,function(data){console.log(data)})
好吧,它肯定能把数据传递过来,所以我要说这就是答案。谢谢!
$(document).on('submit','#loginform',function () { //code here }
$('#page5').on('submit','#loginform',function () { //code here }
$( elements ).on( events, selector, data, handler );