2015-04-06 50 views
0

我正在創建一個登錄腳本來檢查用戶是否存在於表中。來自PHP腳本的JQUERY PHP調用模式

如果用戶不存在,我想用jquery打開一個模式窗口,讓用戶知道有錯誤。

<?php 
    include("../include/database.php"); 
    if(isset($_GET['loginSubmit'])) // form submit button 
    { 
// form username and password values 
    $username = strip_tags(mysqli_real_escape_string($dbc, trim($_GET['username']))); 
    $password = strip_tags(mysqli_real_escape_string($dbc, trim(md5($_GET['password'])))); 

// set query 
    $select = "SELECT username, fullname, userlevel, `password` FROM users WHERE username = '".$username."'"; 
// run query 
    $query = mysqli_query($dbc, $select); 
// get the results 
    $row = mysqli_fetch_array($query); 
// set the results to variables to be used in sessions 
    $dbusername = htmlentities(stripslashes($row['username']));  
    $dbfullname = htmlentities(stripslashes($row['fullname'])); 
    $dbuserlevel = htmlentities(stripslashes($row['userlevel'])); 
    $dbpassword = htmlentities(stripslashes($row['password'])); 

// check if the database password matches the user password 
    if($dbpassword == $password) 
    { 
// if yes, set the sessions and direct to main page 
     $_SESSION['username'] = $username; 
     $_SESSION['fullname'] = $dbfullname; 
     $_SESSION['userlevel'] = $dbuserlevel; 
     header("Location:main.html"); 
    } 
    else 
    { 
// if no match, this is where I want the javascript to show the modal 
     echo ("<script language='javascript'> 
       $('#errLoginModal').modal('show'); // this is jquery and I know it's incorrect 
       window.location.href='index.php' 
       </script>"); 
    } 
?> 

請原諒我的無知。我仍然試圖用javascript,jquery和PHP改善。隨着StackOverflow,我已經越來越好。

我希望PHP腳本在用戶名/密碼檢查失敗時使用javascript/jquery來啓動模式窗口。我甚至不確定這是否是最好的方法。

我知道上面的代碼是不正確的。我的意思是它沒有顯示一個模式窗口。

在另一方面,我可以添加一個警報,它觸發警報,像這樣:

else 
{ 
    echo ("<script language='javascript'> 
      alert(test); 
      window.location.href='index.php' 
      </script>"); 
} 

這工作。我只是希望它能夠顯示模態。

請幫我修復它。

謝謝。

+0

jQuery用戶界面的'dialog'部件將全力爲您服務。 – DevlshOne

+0

你是通過ajax提交表單嗎?如果沒有,你可能應該作爲一個模式窗口在新加載的頁面/你的問題的內容上沒有多大意義。 – jeroen

回答

2

您可以嘗試包括js文件。

}else{ 

    echo `<script src="you_file.js"></script>` 
} 

    //you_file.js 

(function ($){ 
    $(document).ready(function() { 
     alert(`test`); 
     $('#errLoginModal').modal('show'); 
     window.location.href='index.php'; 
    }) 
}) 
當然

包括jQuery的之前

+0

我使用的jquery文件是jQuery-2.1.3.min.js,但它位於我的頭版底部附近,名爲index.php。這可能是腳本仍然無法工作的原因嗎? –

+0

謝謝先生。我能夠使用您的帖子評論來回答這個問題。 –

1

我假設您使用Bootstrap打開模式窗口,因爲您使用的是.modal('show')。確保在HTML <head></head>中包含jquery以及引導程序js文件。

如果模式窗口位於調用$('#errLoginModal').modal('show');的下方,則需要使用jQuery .ready事件,該事件將在DOM完全加載後啓動,docs

所以你應該還有可能看起來像這樣:

else { 
    echo ("<script language='javascript'> 
     $(document).ready(function() { 
      $('#errLoginModal').modal('show'); 
     }); 
     </script>"); 
} 
+0

我能夠結合你的代碼和Vlad Mazur的代碼來找出我的問題。謝謝你,先生。 –