所以通常我可以让我的ajax工作没有任何问题,但由于某种原因,我的脚本没有将变量传递到我的PHP表单。我一直试图调试一段时间,并希望一组新的眼睛可以指出我发生的任何愚蠢的错误(为简单起见,我将它剥离为骨骼,这不会传递变量)。AJAX + PHP表单不传递变量?
AJAX + FORM
$('#formid').on('submit', function(e){
e.preventDefault();
$.ajax({
type: "POST",
url: 'page.php',
data: $(this).serialize(),
success: function(data) {
alert(data);
}
});
});
<form id="formid" method="post">
<input type="text" name="name">
<input type="submit" value="Add">
</form>
page.php文件
//Get Variables
$name = $_POST['name'];
echo 'Name is: '.$name;
这应该显示,上面写着警告 '名称是(不管用户将在表单)'
然而它不会回显用户在表单中提交的内容。任何人都可以看到这个脚本有问题吗?
某处有问题,发布数据返回到PHP页面data: $(this).serialize()
我甚至会更进一步'变种my_data = $(“#formid”)序列化();' – VIDesignz
@VIDesignz我应该在我的答案中更清楚(现在更新更清晰),但是我原来的意图是打算进入原始发布的jQuery函数。在这个上下文中(在$ .ajax()内部),'$(this)'和'$('#formid')'是一样的''var my_data = $('#formid')。serialize )调用它是不同的)。感谢展示它虽然不够清楚! – David