2017-04-11 94 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