2017-04-11 79 views
-1

我想練習使用AJAX。我有一個MySQL數據庫,並且我在列storeName中插入了一些名字。我做了一個SQL查詢,輸出數據庫中列的隨機文本。這是工作的罰款,但只有當我刷新我的瀏覽器:隨機數與AJAX

<?php 
    $sql ="SELECT * FROM stores ORDER BY RAND () LIMIT 1"; 
    $res = $mysqli->query($sql); 
    //print($res); 
    if ($res->num_rows > 0) { 
    // output data of each row 
    while($row = $res->fetch_assoc()) { 
     echo "Storename: " . $row["storeName"]. "<br>" .  
    } 
} else { 
    echo "0 results"; 
} 
?> 

我想提出一個AJAX功能,無需我要刷新我的瀏覽器調用我的SQL查詢。我試着做下面的代碼,但是當我點擊shuffle按鈕時,什麼都沒有發生。我在這裏做錯了什麼?

<body> 
<div id="shuffle" > 
    <h4>Shuffle Stores</h4> 
    <!-- This php function loads everytime I refresh the browser --> 
    <?php include 'function/select_shuffle.php' ?> 

     <form action="function/select_shuffle.php" method="post"> 
     <button>shuffle</button> 
     </form> 
</div> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
    <!-- Shuffle AJAX method--> 
    <script> 
     $(document).ready(function(){ 
      $("button").click(function(){ 
       $.ajax({url: "function/select_shuffle.php", success: function(result){ 
        $("#shuffle").html(result); 
       }}); 
      }); 
     }); 
    </script> 
</body> 

AJAX

@Sehdev: AJAX_1

+0

是否調用成功回調? – Carcigenicate

+0

感謝您的評論。不,那不叫。其實我現在可以看到,當我點擊「Shuffle」按鈕時,出現localhost當前無法處理此請求的錯誤。 HTTP ERROR 500' – Mimi

+0

您無法阻止表單通過默認流程進行提交。 – charlietfl

回答

-1

你並不需要包括select_shuffle.php文件在當前的網頁,如果你正在一個Ajax調用。

請嘗試下面的代碼。你也可以檢查你的控制檯是否有任何ajax錯誤。右鍵單擊您的頁面並選擇檢查。然後點擊「網絡」選項卡,然後點擊XHR標題。在這裏,您可以跟蹤您的ajax請求。您可以檢查標題,響應或任何ajax錯誤。

<body> 
<div id="shuffle" > 
</div> 
<div> 
    <h4>Shuffle Stores</h4> 
     <button id="btn">shuffle</button> 
</div> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
    <!-- Shuffle AJAX method--> 
    <script> 
     $(document).ready(function(){ 
      $("#btn").click(function(){ 
       $.ajax({ 
        url: "function/select_shuffle.php", 
        success: function(result) 
        { 
         $("#shuffle").html(result); 
        } 
       }); 
      }); 
     }); 
    </script> 
</body> 
+0

謝謝你的答案。不錯,我不知道XHR標題。我只是試着用你的代碼,但我得到了同樣的錯誤。我在我的問題中上傳了帶有XHR標題的屏幕截圖。 – Mimi

+0

你可以點擊select_shuffle.php併發布標題和響應標籤的屏幕截圖(當你點擊該文件時在右側打開) – Sehdev

+0

再次感謝。我剛貼了一張頭像的照片。在響應標籤沒有什麼不同之處的文本: 「響應沒有數據avaible」 – Mimi

-1

錯誤500表示內部服務器錯誤。

變化

echo "Storename: ".$row["storeName"]."<br>" . 

echo "Storename: ".$row["storeName"]."<br>"; 

提交按鈕必須是形式,但按鈕僅觸發AJAX沒有理由要在形式。

+0

謝謝你的回答。我添加了';',但仍然給出了完全相同的錯誤。 – Mimi

+0

在devtools中點擊紅色的URL並查看預覽標籤。還有什麼? – DamianImrich

+0

我剛上傳了一張更多500錯誤細節的圖片。 – Mimi