如何查看使用ajax返回的php脚本的结果

时间:2018-06-15 09:27:17

标签: javascript php json ajax

我有一个登录脚本(尚未加密,全部)发布到PHP脚本,然后该脚本返回结果,证明凭据正确,错误或用户需要填写1或这两个字段都是空的。

在此之后我想根据结果重定向到一个页面(如果凭据是正确的)。但当然,当它出错或者一个或两个字段都是空的时,当然不是。

如何在ajax中检查?

这就是我现在在PHP脚本中的内容:

$conn = new Connection;

$username = $_POST['username'];
$userpassword = $_POST['userpassword'];

if(empty($username) && empty($userpassword)){
  echo 'Vul een gebruikersnaam en wachtwoord in';
}else if(empty($username)){
  echo 'Vul een gebruikersnaam in';
}else if(empty($userpassword)){
  echo 'Vul een wachtwoord in';
}else{
  //Both filled in, begin logincode:
  $getuser = "SELECT * FROM users WHERE username = '".$conn->real_escape_string($username)."'";
  $getusercon = $conn->query($getuser);
  $getuser = $getusercon->fetch_assoc();

  if($userpassword == $getuser['password']){
    if($getuser['rights'] == '1'){
      $_SESSION['user'] = 'admin';
       $userdata = array(
         'userdata' => $_SESSION['user'],
      );
     echo json_encode($userdata);
    }else{
      $_SESSION['user'] = 'user';
       $userdata = array(
         'userdata' => $_SESSION['user'],
      );
     echo json_encode($userdata);
    }
  }else{
    echo 'Wachtwoord en gebruikersnaam komen niet overeen';
  }
}

这是我的ajax:

// Login Ajax Code
$( "#content" ).on("submit", "#loginform", function( event ) {
  // Stop normal form behaviour
  event.preventDefault();
  // Retrieve input fields and their values
  var $form = $( this ),
  $username = $form.find( "input[name='username']" ).val(),
  $userpassword = $form.find( "input[name='userpassword']" ).val(),
  url = $form.attr( "action" );
  // Post above values to the action of the form
  var posting = $.post( url, { username: $username, userpassword: $userpassword} );
  // Show result in a div
  posting.done(function( data ) {
    $( "#loginresult" ).empty().slideDown('fast').append( data );
  }, "json");
});

我添加了最后一个, "json"部分,尝试将会话内容恢复,这种方式有效。

当我使用管理员帐户正确登录时,我在loginresult框中看到此信息:{"userdata":"admin"}

如何解码我在ajax代码中使用的内容?问题是我只需要在它是json时解码它,而不是当它是显示一个或两个字段为空的正常消息时。也许所有回复都需要是json?

我如何在userdata包含admin时重定向到某个页面?

1 个答案:

答案 0 :(得分:0)

所有响应必须具有相同的格式,在这种情况下为JSON。 因此,在Javascript中,您可以执行以下操作:

b