Javascript ajaxurl:参数和检查是否成功
我不太确定这是怎么回事,但我的成功(数据)价值来自哪里? 我必须在url:php/login.php中返回一个值吗Javascript ajaxurl:参数和检查是否成功,javascript,php,ajax,Javascript,Php,Ajax,我不太确定这是怎么回事,但我的成功(数据)价值来自哪里? 我必须在url:php/login.php中返回一个值吗 $.ajax({ url: 'php/login.php', //must i return a value in login.php? data: {username:username,password:password}, type: "POST", dataType: 'json',
$.ajax({
url: 'php/login.php', //must i return a value in login.php?
data: {username:username,password:password},
type: "POST",
dataType: 'json',
success: function(data)
{
if(data == true){
console.log("sdfsdfs " + data);
login.submit();
}
else{
console.log("NO DATA PRESENT");
}
}
//else do an alert("please lgo in again");
});
在php/login.php中,我查询数据库以查看是否存在这样的用户以及密码是否匹配
我的login.php的一部分
<?php
echo $username = $_POST['username']; //not echo-ing
echo $password = $_POST['password'];
if ($_POST['login']) //check if the submit button is pressed
{
$remember = $_POST['remember'];
if ($username&&$password) //check if the field username and password have values
{
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$connect=mysqli_connect($dbhost,$dbuser,$dbpass) or die("Unable to Connect");
mysqli_select_db($connect,"clients") or die("Could not open the db");
$sql = "SELECT * FROM clients.users WHERE username='$username'";
$login = mysqli_query($connect, $sql);
if (mysqli_num_rows($login))
{
while ($row = mysqli_fetch_assoc($login))
{
$db_password = $row['password'];
if ($password==$db_password)
{
$loginok = TRUE;
echo json_encode( true );
} else {
echo json_encode( false );
echo "Please re-enter username and password, they did not match";
header("Location: ../login.php");
}
?>
当您想使用ajax返回一些数据时,需要在脚本中回显ajax将调用的数据。如果请求成功,它会将脚本中的所有回显内容返回到success函数中指定的参数中
success: function(data)
{
// code...
}
所以“数据”将包含脚本的结果,然后您可以做任何您想做的事情
编辑:
好吧,我会这样解决它
$db_password = $row['password'];
if ($password==$db_password)
{
echo json_encode(array("status" => "ok", "message" => "Login successful!"));
} else {
echo json_encode(array("status" => "error", "message" => "Please re-enter username and password, they did not match!"));
//header("Location: ../login.php"); you don't need this
}
你不能回显json,然后在它后面加上一些文本。您可以,但不建议这样做。您必须在login.phpSure中返回或回显一个值,您必须以JSON格式返回(输出)数据。请参阅修订的OPyes谢谢,但我是否在login.php中返回此值?请看下面的例子:谢谢,我的ajax在成功后会是什么样子:我已经记不起来了:)那么问题出在哪里?是否要使用javascript检查用户登录是否成功?您需要更精确地指定您的问题:Pit看起来不像我的url:php/login.php被执行,我在开始时有一些回音,它不会显示。如果您的ajax请求返回空结果,则可能意味着您请求的脚本有一些错误,或者您没有回音,或者您回音了NULL值或零值。