好吧,我对发生的事情不知所措。我试图将表单数据从简单的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) { }

最佳答案

*您的代码中有几个问题,

1.Add事件将触发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;

07-28 01:28
查看更多