AJAX没有将表单数据发送到PHP

时间:2015-10-24 11:20:15

标签: php jquery ajax

我通过AJAX向PHP发送一些表单数据。在使用AJAX发送数据之前显示输入字段的值,但在PHP脚本中,接收的值为NULL。

$(document).ready(function(){   
    $('#my_form').submit(function(){    
        event.preventDefault();                 
        var form = $('form')[0];
        var formData = new FormData(form);                    
        $.ajax({            
            url: "signup.php",
            enctype: "multipart/form-data",
            cache: false,
            type: "post",
            dataType: "html",
            data: formData,
            processData: false,
            success: function(response){ 
                //do something
            },
            error: function (xhr, ajaxOptions, thrownError) {
               // some alert
            }
        });
    });
});

PHP

<?php
    //.......
    $fname=$_POST['fname']; 
    $lname=$_POST['lname']; 
    //.......
?>

HTML

<form id="my_form" method="post">
    <input type="text" id="fname" name="fname" class="inputname" placeholder="First Name" required/>
    <input type="text" id="lname" name="lname" class="inputname" placeholder="Last Name" required/>
    <input type="submit" value="BUTTON" class="submitbtn">
</form>

我得到一些未定义的索引:fname警告

3 个答案:

答案 0 :(得分:1)

您可以在jquery中使用serialize()函数。

$(document).ready(function(){   
    $('#my_form').submit(function(){    
        event.preventDefault();   
        var data = $(this).serialize();
        $.ajax({            
            url: "signup.php",            
            cache: false,
            type: "post",            
            data: data,            
            success: function(response){ 
                //do something
            },
            error: function (xhr, ajaxOptions, thrownError) {
               // some alert
            }
        });
    });
});

<?php   
    $fname=$_POST['fname']; 
    $lname=$_POST['lname']; 
    echo $fname;
    echo $lname;
?>

答案 1 :(得分:0)

enctype更改为x-www-form-urlencoded。这是未指定编码类型的表单的默认设置,例如您的。

答案 2 :(得分:0)

好的,你可以试试

$(document).ready(function(){   
    $('#my_form').submit(function(event){    
        event.preventDefault();                 
        var fname= $(this).find('#fname').val();
        var lname= $(this).find('#lname').val();                
        $.ajax({            
            url: "signup.php",
            type: "post",
            data: {fname:fname , lname:lname},
            success: function(response){ 
                alert(response);
            },
            error: function (xhr, ajaxOptions, thrownError) {
               // some alert
            }
        });
    });
});

在php中

<?php
    //.......
    $fname=$_POST['fname']; 
    $lname=$_POST['lname']; 
    echo $fname .|||. $lname;
    //.......
?>