我对使用文本框和下拉框搜索网页有疑问。
我有字段表:
ID First name Last name Company name Occupation Description
现在我需要创建一个搜索表单,它将从数据库(字段Occupation
)和文本框中填充,我可以放置任何我想要的内容,然后根据网页上的数据从数据库中获取结果。
我真的很抱歉,但我完全忘记了,只需要一些这类代码的例子和很多帮助:)
谢谢
答案 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>