MySQL数据库填充下拉框和PHP搜索

时间:2012-09-03 23:07:07

标签: php mysql forms search dropdownbox

我对使用文本框和下拉框搜索网页有疑问。

我有字段表:

ID
First name
Last name
Company name
Occupation
Description

现在我需要创建一个搜索表单,它将从数据库(字段Occupation)和文本框中填充,我可以放置任何我想要的内容,然后根据网页上的数据从数据库中获取结果。

我真的很抱歉,但我完全忘记了,只需要一些这类代码的例子和很多帮助:)

谢谢

2 个答案:

答案 0 :(得分:2)

您将要使用AJAX从您的页面调用php脚本,然后使用php脚本查询您的数据库并将结果回显给页面。

我将在这个例子中使用jQuery,因为它可以节省很多行,如果你还没有,你应该检查一下。

<html>
<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
    <script type="text/javascript">
        function searchOccupation () {
            $.ajax({
                url: "searchOccupation.php?search=" + $('#searchTxt').attr('value'),
                success: function (data) {
                    alert(data);
                }
            });
        }
</script>
</head>
<body>
    <input type="text" id="searchTxt">
    <input type="button" value="Search" id="searchBtn" onclick="searchOccupation()">
</body>

然后你的php脚本(其名称应该与ajax调用的“url”字段中的名称相匹配(在这种情况下,它应该命名为“searchOccupation.php”)将如下所示:

<?php
    $searchTxt = $_GET['search'];
    $con = new mysqli('server', 'user', 'password', 'database');
    if (!$con) {die("failed to connect: " . $con->connect_error;)}
    $sql = "SELECT * FROM tableName WHERE occupation = '" . $searchTxt . "'";
    $result = $con->query($sql);
    if (!$result) {die("No result set");}
    while($row = $result->fetch_assoc()) {
        echo $row['firstName'];  //This sends data back to the page 
    } 
?>

php脚本的echo部分是将数据发送回javascript的“success:function(data)”的内容,因此如上所述回显您想要的页面上的任何字段。

编辑:稍微误解了你的意思,上面的内容可能就是你所需要的。

答案 1 :(得分:0)

使用搜索输入文本框创建表单。

然后在表单提交的页面上(我想回发到同一页面),你需要执行一个select查询来获得基于该搜索的职业列表。

示例:在index.php中

<?php

?>
<html>
<body>
<form action="<?php echo htmlentities($PHP_SELF); ?>"
  <?php
    if (isset($_POST['submit'])){
      // Insert code to connect to DB HERE
      $searchText = htmlentities($_POST['search']);
      $query = "SELECT * FROM table_name WHERE Occupation LIKE '%$searchText%'";
      $results = mysql_query($query) or die(mysql_query());
      echo "<select name=\"occupations\">";
      while($row=mysql_fetch_array($results)){
        echo "<option>$row[Occupation];</option>";
      }
      echo "</select>";
    }
  ?>
  <input type="text" name="search"/>
  <input type="submit" name="submit"/>
</form>
</body>
</html>