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