我通过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警告
答案 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;
//.......
?>