当我不在db中使用用户名和密码时,我的代码有效。但是,如果我确实匹配数据库中的细节是一个问题。但是,如果我匹配脚本中的那些它是有效的。怎么了? 我期待代码在没有刷新的情况下显示成功消息,并且在redirectime之后显示到view.php:它的工作方式是如此,但如果我集成了与php匹配的数据库,那么jquery会继续告诉我错误的用户名或密码密码和用户名都没问题
<script type="text/javascript">
$(document).ready(function() {
$("#login").click(function() {
var action = $("#form1").attr('action');
var form_data = {
username: $("#username").val(),
password: $("#password").val(),
is_ajax: 1
};
$.ajax({
type: "POST",
url: action,
data: form_data,
success: function(response)
{
if(response == 'success')
$("#form1").slideUp('slow', function() {
//function to direct
window.location.replace("view.php");
//$("#message").html("<p class='success'>You logged in successfully!</p>");
});
else
$("#message").html("<p class='error' style='color:red'>Invalid username and/or password.</p>");
}
});
return false;
});
// Function that redirects the user to another page
});
</script>
PHP文件,如果它是这样的,它工作得很好。
<?php
$is_ajax = $_REQUEST['is_ajax'];
if(isset($is_ajax) && $is_ajax)
{
$username = $_REQUEST['username'];
$password = $_REQUEST['password'];
if($username == 'demo' && $password == 'demo')
{
echo "success";
}
}
?>
与db
匹配的php代码<?php
$is_ajax = $_REQUEST['is_ajax'];
if(isset($is_ajax) && $is_ajax)
{
$username =(isset($_POST['username']))? trim($_POST['username']): '';
$password=(isset($_POST['password']))? $_POST['password'] : '';
//
$query ='SELECT username FROM site_user WHERE '.
'username="'.mysql_real_escape_string($username,$con).'" AND ' .
'password = md5("'.mysql_real_escape_string($password,$con).'")';
$result=mysql_query($query,$con) or die (mysql_error($con));
if(mysql_num_rows($result)>0){
echo 'ok';
}
}
?>
答案 0 :(得分:1)
url:
参数首先没有获取网址......但还有其他问题。
以此为例(借用其他问题/答案...... jQuery Ajax POST example with PHP)
/* get some values from elements on the page: */
var values = $(this).serialize();
/* Send the data using post and put the results in a div */
$.ajax({
url: "test.php",
type: "post",
data: values,
success: function(){
alert("success");
$("#result").html('submitted successfully');
},
error:function(){
alert("failure");
$("#result").html('there is error while submit');
}
});
答案 1 :(得分:0)
将正确的值传递给ajax函数
$.ajax({
type: "POST",
url: your php file handling form data,
data: serialize the form data,
success: function(response){}
});