2017-08-02 43 views
0

我使用了類似於下面的代碼來顯示數據庫表。它正在工作,但現在它不工作。我已經嘗試了許多其他代碼,但是我的帖子文件不會被調用,不管我做什麼。Ajax不運行php文件

<div class="loginform-in"> 
    <h1>User Login</h1> 
    <div class="err" id="add_err"></div> 
    <fieldset> 
    <form action="./" method="post"> 
     <ul> 
     <li> 
      <label for="name">Username </label> 
      <input type="text" size="30" name="name" id="name" /> 
     </li> 
     <li> 
      <label for="name">Password</label> 
      <input type="password" size="30" name="word" id="word" /> 
     </li> 
     <li> 
      <label></label> 
      <button id="login" type="button" class="btn btn-default" onclick="saveBasics();">Login</button> 
     </ul> 
    </form> 
    </fieldset> 
</div> 

<script src="jquery-2.2.3.min.js"></script> 
<script src="login.js"></script> 

login.js

alert("hi"); 

$("#login").click(function(){ 
    username = $("#name").val(); 
    password = $("#word").val(); 

    $.ajax({ 
    url: "login.php", 
    type: "POST", 
    data: "name=" + username + "&pwd=" + password, 
    success: function(html) { 
     aler(html); 
     if (html == 'true') { 
     window.location = "login.php"; 
     } else { 
     $("#add_err").css('display', 'inline', 'important'); 
     $("#add_err").html("<img src='images/alert.png' />Wrong username or 
password"); 
     } 
    }, 
    beforeSend: function() { 
     $("#add_err").css('display', 'inline', 'important'); 
     $("#add_err").html("<img src='images/ajax-loader.gif' /> Loading...") 
    } 
    }); 
    return false; 
}); 

的login.php

<?php 
    echo '<script language="javascript">'; 
    echo 'alert("message successfully sent")'; 
    echo '</script>'; 
?> 

我的代碼不運行的login.php文件,我不知道爲什麼。它應該在按鈕被點擊時顯示警報,但不會。

注意:我剛添加alert(html);在我的Java腳本文件和警報顯示

<script language="javascript">alert("message successfully sent") 
    </script>true 

編輯:每週身體的JavaScript工作正常(我覺得)它只是我收到的反應是字面PHP頁面代碼。

+3

你檢查'html'是否等於''true''。這絕不會發生。 – PeterMader

+0

但它應該顯示在login.php文件中寫入的警報的任何方式。它甚至沒有這樣做。 –

+0

hey在login.php中回顯「true」並刪除所有其他代碼 – Shibon

回答

0

打開瀏覽器控制檯(F12),看看你得到什麼錯誤?

此外,還有一個網絡選項卡。

如果您要過濾網絡選項卡中的XHR - 那麼您會看到,如果您的請求確實在尋址login.php頁面,並且您可以看到該頁面已經應答(Response子選項卡)。

通常情況下,我用更便捷的方式火Ajax請求:

$.post('login.php', { 
    name: $('#name').val(), 
    pwd: $('#word').val(), 
}, function(response) { 
    console.log(response); 
    alert(response); 
}); 
+0

這在技術上不是答案;它顯示OP如何調試他的代碼,因此應該是一個評論。 –

0

不,你可以從PHP沒有警報消息通過Ajax。相反,它可以做以下

login.js

alert("hi"); 

$("#login").click(function(){ 
    username = $("#name").val(); 
    password = $("#word").val(); 

    $.ajax({ 
    url: "login.php", 
    type: "POST", 
    data: "name=" + username + "&pwd=" + password, 
    success: function(html) { 
     if (html == 'true') { 
     alert("message successfully sent"); //<-----------alert here 
     window.location = "login.php"; 
     } else { 
     $("#add_err").css('display', 'inline', 'important'); 
     $("#add_err").html("<img src='images/alert.png' />Wrong username or 
password"); 
     } 
    }, 
    beforeSend: function() { 
     $("#add_err").css('display', 'inline', 'important'); 
     $("#add_err").html("<img src='images/ajax-loader.gif' /> Loading...") 
    } 
    }); 
    return false; 
}); 

的login.php

<?php 
echo "true"; //<---return only true 
?> 
0

1:你不發送響應string'html'讓您if statement將永遠不會true

出於測試目的echologin.phptrue像下面

<?php 
    echo 'true'; 
?> 

第二:在成功函數alertresponse這樣

success: function(response){ 

     alert(response); 

      }, 
0

我的問題解決了,我只需要了解如何響應起作用。

但問題是我試圖在login.php中顯示的警告以我已實現的其他形式工作,但不在此處。 爲什麼?