【问题标题】:how to create search box to filter data如何创建搜索框来过滤数据
【发布时间】:2013-03-20 22:32:54
【问题描述】:

首先,我将此站点用作我正在尝试做的事情的模板,除了我在此之上添加了一个搜索框:http://www.dougv.com/demo/jquery_sort_records/js.php(由于引用阻止,您应该将链接复制并粘贴到查看它。否则会遇到 403 禁止错误)

我想创建一个简单的搜索框,它将搜索某个属性并显示找到的任何结果(基本上是一个过滤器)。到目前为止,这是我所拥有的代码的一部分。 到目前为止,表格看起来不错,但是我想添加一个搜索框,用于搜索名字属性。

有什么帮助吗?

<script type="text/javascript" src="jquery-1.3.1.min.js"></script>
<script type="text/javascript" src="jquery.tablesorter.min.js"></script>
<script type="text/javascript">
            $(document).ready(function() {
                $("#sortedtable").tablesorter({ sortlist: [0,0] });
            });
        </script>

</head>
<body>
<?php
            if(!$link = mysql_connect("database_server", "user_name", "password")) {
                echo "Cannot connect to db server";
            }
            elseif(!mysql_select_db("database_name")) {
                echo "Cannot select database";
            }
            else {
                if(!$rs = mysql_query("SELECT * FROM table")) {
                    echo "Cannot parse query";
                }
                elseif(mysql_num_rows($rs) == 0) {
                    echo "No records found";
                }
                else {
                    echo "<table id=\"sortedtable\" class=\"bordered\" cellspacing=\"0\">\n";
                    echo "<thead>\n<tr>";
                    echo "<th>Record ID</th>";
                    echo "<th>First Name</th>";
                    echo "<th>Last Name</th>";
                    echo "<th>Birthday</th>";
                    echo "<th>Department</th>";
                    echo "</tr>\n</thead>\n";
                    while($row = mysql_fetch_array($rs)) {
                        echo "<tr><td>$row[person_id]</td><td>$row[person_name]</td><td>$row[person_surname]</td><td>$row[person_birthdate]</td><td>$row[person_department]</td></tr>\n";
                    }
                    echo "</table><br />\n";
                }
            }
?>

<form name="search_form" method="POST" action="js.php">
<font face="Calibri"> </font>
Search: <input type="text" name="search_b" value="" />
<input type="submit" name="search" value="Search for your term..."> </input>
</form>

【问题讨论】:

  • 403: 链接出现禁止错误
  • @ITroubs 我知道,但它仍然有效,由于某种原因,它仅在您手动粘贴 url 时有效
  • 那么你有某种引用阻止程序
  • @ITroubs 它不是我的网站,它只是一个代码页面,所有代码都已启动并运行

标签: php jquery mysql database search


【解决方案1】:

首先,我建议您将数组访问权限包含在这样的字符串中:`" some triing {$array['key']}" 这样您就不会遇到直接在字符串中访问数组字段的任何问题。

但现在应该这样做:

<script type="text/javascript" src="jquery-1.3.1.min.js"></script>
<script type="text/javascript" src="jquery.tablesorter.min.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        $("#sortedtable").tablesorter({ sortlist: [0,0] });
    });
</script>

</head>
<body>
    <?php
    if (!$link = mysql_connect("database_server", "user_name", "password")) {
        echo "Cannot connect to db server";
    } elseif (!mysql_select_db("database_name")) {
        echo "Cannot select database";
    } else {
        $searchString = "";
        if(!empty($_POST['search_b'])){
            $searchString = "WHERE user_name LIKE '%{$_POST['search_b']}%'";
        }
        if (!$rs = mysql_query("SELECT * FROM table $searchString")) {
            echo "Cannot parse query";
        } elseif (mysql_num_rows($rs) == 0) {
            echo "No records found";
        } else {
            echo "<table id=\"sortedtable\" class=\"bordered\" cellspacing=\"0\">\n";
            echo "<thead>\n<tr>";
            echo "<th>Record ID</th>";
            echo "<th>First Name</th>";
            echo "<th>Last Name</th>";
            echo "<th>Birthday</th>";
            echo "<th>Department</th>";
            echo "</tr>\n</thead>\n";
            while ($row = mysql_fetch_array($rs)) {
                echo "<tr><td>{$row[person_id]}</td><td>{$row[person_name]}</td><td>{$row[person_surname]}</td><td>{$row[person_birthdate]}</td><td>{$row[person_department]}</td></tr>\n";
            }
            echo "</table><br />\n";
        }
    }
    ?>

    <form name="search_form" method="POST" action="js.php">
        <font face="Calibri"> </font>
        Search: <input type="text" name="search_b" value="" />
        <input type="submit" name="search" value="Search for your term..."> </input>
    </form>

【讨论】:

  • 感谢回复,唯一的问题是初始数据库不会出现?它仅依靠搜索词来显示结果。我希望数据库在进入页面时出现(我的代码就是这样),但是我也想要一个可选的搜索框,我看到你已经添加了
  • 我的代码有什么问题?仅当 search_b 不为空时,我才限制结果集。否则没有应用限制!
  • 我只是扩展了您的原始代码,以便如果您在搜索框中输入一些字符串,则会应用一些过滤器,否则将显示整个表格
  • 非常抱歉,我要瞎了哈哈。非常感谢它完美无缺
猜你喜欢
  • 2016-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-05
  • 2011-02-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多