【问题标题】:Alert box malfuction提示框故障
【发布时间】:2017-08-19 20:22:32
【问题描述】:

我的脚本代码有问题。我有一个显示搜索结果的警报框,但问题是它显示的是以前的结果而不是当前的结果。它第一次给出 null ,然后它通过给出先前的结果来工作。怎么了? .提前致谢

<?php
include_once('dbconnect.php');
if(isset($_POST['search'])){
    $q = $_POST['q'];
    $query = mysqli_query($conn,"SELECT * FROM `users` WHERE userCountry LIKE '%".$q."%'"); 
//Replace table_name with your table name and `thing_to_search` with the column you want to search
    $count = mysqli_num_rows($query);
    if($count == "0" || $q == ""){
        $output = '<h2 style="color:white;">No player found!</h2>';
    }else{
                while($row = mysqli_fetch_array($query)){
        $s[] = $row['userIngame']; // Replace column_to_display with the column you want the results from
                $output = '<h2 style="color:white;">There are '.$count.' players </h2><br>';
                               } 

        }
}
echo json_encode($s);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html>


<head>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
      <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
      <link rel="stylesheet" href="/resources/demos/style.css">
      <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
      <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<script>
           $(document).ready(function(){
               $("form").submit(function(){
                    var player = <?php echo json_encode($s); ?>;
                    alert("players : " + player);
    });
});
</script>

【问题讨论】:

  • 你期待什么?我想您的页面刚刚重新加载,这就是显示先前搜索结果的原因。
  • 尝试在$(document).ready而不是form.submit上显示您的警报。
  • @u_mulder 是的。请告诉我如何解决它
  • 显然有ajax请求。

标签: javascript php database search alert


【解决方案1】:

看看当 PHP 部分被执行时会发生什么。第一次显示您的页面时,$q 为空。这就是为什么您的 SQL 不会返回任何结果的原因。 $output 将被设置为'&lt;h2 style="color:white;"&gt;No player found!&lt;/h2&gt;'; 并且 $s[] 不会被设置。这是在 javascript 标记内写入您的页面的内容...

<script> 
           $(document).ready(function(){
               $("form").submit(function(){
                    var player = null;
                    alert("players : " + player);
    });
});
</script>

这就是为什么当您提交表单时,警报显示为空。 第二次显示页面时,$q 有一个值,$s 由 SQL 调用填充。现在脚本看起来像这样......

<script>
           $(document).ready(function(){
               $("form").submit(function(){
                    var player = "Some Playername";
                    alert("players : " + player);
    });
});
</script>

警报功能只有在您提交表单时才会执行,然后它会在警报框中显示名称。但是当然,到那时,你会期待下一个玩家的名字出现。

【讨论】:

  • 我现在明白了。我想我会弄清楚如何解决它。谢谢你的信息
  • 也许如果我用页面重新加载替换提交功能会起作用吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-17
  • 2018-11-14
  • 2022-06-17
  • 2010-12-31
相关资源
最近更新 更多