Javascript php中的Ajax提交表单序列化数据为空
我一直在这里搜索所有相关的问题,但仍然不能找出我的问题 我使用的是一个简单的模态形式:Javascript php中的Ajax提交表单序列化数据为空,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,我一直在这里搜索所有相关的问题,但仍然不能找出我的问题 我使用的是一个简单的模态形式: <p id="messages">Let's make today a great day!</p> <form id="myloginform" name="myloginform" action="scripts/login.php" method="post" > <div class="form-group"> <labe
<p id="messages">Let's make today a great day!</p>
<form id="myloginform" name="myloginform" action="scripts/login.php" method="post" >
<div class="form-group">
<label for="username" class="">Enter username</label>
<input type="text" class="form-control input-lg c-square" id="username" name="username" placeholder="Username" required> </div>
<div class="form-group">
<label for="password" class="">Enter pass</label>
<input type="password" class="form-control input-lg c-square" id="password" name="password" placeholder="Password" required> </div>
<div class="form-group">
<div class="c-checkbox">
<input type="checkbox" id="login-rememberme" class="c-check">
<label for="login-rememberme" class="c-font-thin c-font-17">
<span></span>
</div>
</div>
<div class="form-group">
<button type="submit" class="btn c-theme-btn btn-md c-btn-uppercase c-btn-bold c-btn-square c-btn-login" id="check">login</button>
</div>
</form>
让我们把今天变成一个伟大的日子
输入用户名
进入通行证
登录
我正在使用ajax将表单传递到php文件:
<script>
$(document).ready(function(){
$('form#myloginform').submit(function(e) {
var my_data = $('form#myloginform').serialize();
$.ajax({
type : 'POST',
url : 'scripts/login.php',
cache : false,
data : my_data,
contentType : false,
processData : false,
dataType: 'json',
success: function(response) {
//TARGET THE MESSAGES DIV IN THE MODAL
if(response.type == 'success') {
$('#messages').addClass('alert alert-success').text(response.message);
} else {
$('#messages').addClass('alert alert-danger').text(response.message);
}
}
});
e.preventDefault();
});
});
</script>
$(文档).ready(函数(){
$('form#myloginform')。提交(函数(e){
var my_data=$('form#myloginform').serialize();
$.ajax({
键入:“POST”,
url:'scripts/login.php',
cache:false,
数据:我的数据,
contentType:false,
processData:false,
数据类型:“json”,
成功:功能(响应){
//以模式中的MESSAGES DIV为目标
如果(response.type==“success”){
$('#messages').addClass('alert-alert-success').text(response.message);
}否则{
$('#messages').addClass('alert-alert-danger').text(response.message);
}
}
});
e、 预防默认值();
});
});
login.php文件非常简单,返回json$输出响应
<?php
$username = $_POST['username'];
$password = $_POST['password'];
if($username == "Test"){
$success = true;
}
if($success == true) {
$output = json_encode(array('type'=>'success', 'message' => $username));
} else {
$output = json_encode(array('type'=>'error', 'message' => $username));
}
die($output);
?>
每种情况下的$output都返回null。我用firebug进行了检查,一切都正常,没有错误,但仍然无法使php中的变量正常工作。有什么想法吗???我的方法是否有问题,或者我是否需要反序列化php文件中的数据,不知何故…?不要使用die。
使用回显或打印。
还将contentType设置为true 删除
contentType
和processData
选项,您刚刚关闭了jQuery在将序列化表单发送到服务器之前将其解析为www URL编码数据所使用的所有功能。太好了,谢谢!!!