2017-09-09 2 views
1

Voulez-vous rediriger vers une page sur la connexion réussie J'utilise jQuery formulaire plugin pour soumettre mon formulaire. Tout fonctionne mais la réponse est imprimée au lieu de rediriger.jquery form plugin rediriger au lieu d'imprimer réponse en html sur php mysql script réussie

Connexion Envoyer le formulaire en utilisant le plugin formulaire jquery

<script> 
    $(document).ready(function(){ 
     // Form submit via jQuery form plugin 
     $('#formUserSignIn').ajaxForm(function(response){ 
      if(parseInt(response) !== 1){ 
      $('#flashMessage').html(response);    
      } 
      else{ 
       window.location.href='/apps/home/dashboard'; 
      } 
     }); 
    }); 
</script> 

process.php

if(isset($_POST['btnUserSignIn'])){ 
    $userEmail = mysqli_real_escape_string($conn, $_POST['txtUserEmail']); 
    $userPass = mysqli_real_escape_string($conn, $_POST['txtUserPassword']); 
    $userPass = $encrypt->hash_pass($userPass); 

    $sql_check_user = $conn->query("SELECT * FROM workflow_users 
     WHERE user_email = '$userEmail' AND user_pass = '$userPass'") 
    or die(query_error('queryCheckUser', $conn->error)); 

    if($sql_check_user->num_rows > 0){ 
     $row_check_user = $sql_check_user->fetch_array(); 
     $userName = $row_check_user['user_name']; 

     /* 
     |----------------------------------------------------- 
     | SET PHP SESSION FOR CURRENT USER 
     |----------------------------------------------------- 
     */ 
     // Set session name 
     session_name('currentuser'); 
     // Set session expire time 
     ini_set('session.gc_maxlifetime', 7200); 
     // Start php session 
     session_start(); 
     // Store query result to session array 
     $_SESSION['user_id']  = $row_check_user['user_id']; 
     $_SESSION['user_name']  = $row_check_user['user_name']; 
     $_SESSION['user_email']  = $row_check_user['user_email']; 
     $_SESSION['user_pass']  = $row_check_user['user_pass']; 
     $_SESSION['user_type']  = $row_check_user['user_type']; 
     $_SESSION['user_status'] = $row_check_user['user_status']; 
     $_SESSION['user_otp']  = $row_check_user['user_otp']; 

     return 1; 
    } 
    else{ 
     $msg->set_flash_msg("Error", "Incorrect email or password."); 
    } 


} 

Répondre

0

Vous devez faire echo lorsque vous appelez ajax au lieu de return

if(isset($_POST['btnUserSignIn'])){ 
    $userEmail = mysqli_real_escape_string($conn, $_POST['txtUserEmail']); 
    $userPass = mysqli_real_escape_string($conn, $_POST['txtUserPassword']); 
    $userPass = $encrypt->hash_pass($userPass); 

    $sql_check_user = $conn->query("SELECT * FROM workflow_users 
     WHERE user_email = '$userEmail' AND user_pass = '$userPass'") 
    or die(query_error('queryCheckUser', $conn->error)); 

    if($sql_check_user->num_rows > 0){ 
     $row_check_user = $sql_check_user->fetch_array(); 
     $userName = $row_check_user['user_name']; 

     /* 
     |----------------------------------------------------- 
     | SET PHP SESSION FOR CURRENT USER 
     |----------------------------------------------------- 
     */ 
     // Set session name 
     session_name('currentuser'); 
     // Set session expire time 
     ini_set('session.gc_maxlifetime', 7200); 
     // Start php session 
     session_start(); 
     // Store query result to session array 
     $_SESSION['user_id']  = $row_check_user['user_id']; 
     $_SESSION['user_name']  = $row_check_user['user_name']; 
     $_SESSION['user_email']  = $row_check_user['user_email']; 
     $_SESSION['user_pass']  = $row_check_user['user_pass']; 
     $_SESSION['user_type']  = $row_check_user['user_type']; 
     $_SESSION['user_status'] = $row_check_user['user_status']; 
     $_SESSION['user_otp']  = $row_check_user['user_otp']; 

     echo 1; // echo 1 if success 
    } 
    else{ 
     echo "error"; // echo error or any thing else if there is an error 
     $msg->set_flash_msg("Error", "Incorrect email or password."); 
    } 


} 
+0

J'ai essayé mais 'echo' obtient le contenu imprimé au lieu de rediriger. Actuellement, j'utilise 'echo" ";' sur ** Process.php ** en cas de succès 'query_user_check' à rediriger mais qui attend ** sur le signe. php ** page pendant un moment, puis faire la redirection, mais qui le rend Improfessional. –

+0

ne pas echo script du fichier php. Votre fichier jquery doit être tel quel que vous avez spécifié en question seulement changer le fichier php –

+0

Essayé votre réponse mais il imprime 1 dans le résultat div '# flashMessage' au lieu de rediriger. Peut-être que je fais une vérification incorrecte en javascript. –