好的,我不知道出了什么问题。我试图从一个简单的jQuery脚本将表单数据传递给我的PHP脚本,但出于某种原因,当我尝试访问$ _POST数据时,php说$ _POST是空的?
我们走了,所以我有以下jQuery和php脚本
的jQuery
var post = $('#cform').serialize();
console.log("POST DATA: " + post);
$.post(action, post, function(data){
document.getElementById('message').innerHTML = data;
$('#message').slideDown('slow');
$('#cform img.contact-loader').fadeOut('slow',function(){$(this).remove()});
$('#submit').removeAttr('disabled');
if(data.match('success') != null) $('#cform').slideUp('slow');
});
PHP
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$comments = $_POST['comments'];
var post的控制台日志看起来像这样
POST DATA: fname=Daniel&lname=Jarvis&email=test%40gmail.com&phone=4444444444&comments=hello
$ _POST的var_dump说明了这个
array(0) { }
我不知道为什么这会给我这么多问题所以任何帮助都会非常感激。
P.S 我也尝试过为帖子数据做这个,但它仍然没有用。
var post = {fname: $('#fname').val(), lname: $('lname').val(), ...} //you get the idea
console.log看起来像这样
{fname: "Dan", lname: "Jarvis", ...}
但是当我var_dumped $ _POST变量时,它仍然说
array(0) { }
答案 0 :(得分:0)
*您的代码中存在几个问题,
1.添加将触发ajax的事件。
2.您的PHP脚本不会回显任何数据。
3.不返回false或阻止默认手动停止表单提交。(我认为这是主要问题)
检查解决方案:*
<强> HTML:强>
<form id="form">
<input type="text" name="fname">
<input type="text" name="lname">
<input type="text" name="email">
<input type="text" name="phone">
<input type="text" name="comments">
<input type="submit" name="submit" value="submit">
</form>
<span id="message"></span>
<强>使用Javascript:强>
$("#form").submit(function(){
var post = $('#form').serialize();
console.log("POST DATA: " + post);
$.post('target.php', post, function(data){
document.getElementById('message').innerHTML = data;
$('#message').slideDown('slow');
$('#cform img.contact-loader').fadeOut('slow',function(){$(this).remove()});
$('#submit').removeAttr('disabled');
if(data.match('success') != null) $('#cform').slideUp('slow');
});
return false;
})
PHP(我假设你的php脚本是target.php):
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$comments = $_POST['comments'];
echo $fname.$lname.$email.$phone.$comments;