[英]search the database based on the value selected from database
我有一個用於層疊下拉列表的代碼,可以很好地工作,有兩個下拉列表,第二個依賴於第一個,但是我希望基於從中選擇的參數執行搜索(來自數據庫表)第二個下拉列表。 我也有用於搜索的代碼,但我不知道如何將搜索代碼與級聯下拉列表代碼結合使用
級聯下拉列表有兩頁。 第一個是index.php,第二個是fetch_state.php。 有代碼是
的index.php
<body>
<div id="container">
<div id="body">
<div class="mhead"><h2>Cascaded dropdown with jQuery Ajax and PHP - InfoTuts</h2></div>
<form class="form-horizontal" role="form" action="" enctype="multipart/form-data" method="post">
<div id="dropdowns">
<div id="center" class="cascade">
<?php
$sql = "SELECT * FROM search_parent ORDER BY searchname";
$query = mysqli_query($con, $sql);
?>
<label>Country:
<select name="country" id = "drop1">
<option value="">Please Select</option>
<?php while ($rs = mysqli_fetch_array($query, MYSQLI_ASSOC )) { ?>
<option value="<?php echo $rs["id"]; ?>"><?php echo $rs["searchname"]; ?></option>
<?php } ?>
</select>
</label>
</div>
<div class="cascade" id="state"></div>
<div id="city" class="cascade"></div>
</div>
<div class="col-md-4 col-sm-6">
<div class="media-body">
<div class="col-md-8">
<input class="btn btn-primary" value="Search" type="submit" name="submit">
</div>
</div>
</div>
</form>
</div>
</div>
<script src="jquery-1.11.1.js"></script>
<script>
$(document).ready(function()
{
$("select#drop1").change(function(){
var parent_id = $("select#drop1 option:selected").attr('value');
// alert(parent_id);
$("#state").html( "" );
//$("#city").html( "" );
if (parent_id.length > 0 ){
$.ajax({
type: "POST",
url: "fetch_state.php",
data: "parent_id="+parent_id,
cache: false,
beforeSend: function (){
$('#state').html('<img src="loader.gif" alt="" width="24" height="24">');
},
success: function(html){
$("#state").html( html );
}
});
}
});
});
</script>
</body>
fetch_state.php
<?php
include("connection.php");
$parent_id = trim(mysql_escape_string($_POST["parent_id"]));
$sql = "SELECT * FROM features WHERE parent_id = ".$parent_id ." ORDER BY fname";
$count = mysqli_num_rows( mysqli_query($con, $sql) );
if ($count > 0 ) {
$query = mysqli_query($con, $sql);
?>
<label>State:
<select name="state" id="drop2">
<option value="">Please Select</option>
<?php while ($rs = mysqli_fetch_array($query, MYSQLI_ASSOC)) { ?>
<option value="<?php echo $rs["id"]; ?>"><?php echo $rs["fname"]; ?></option>
<?php } ?>
</select>
</label>
<?php
}
?>
<script src="jquery-1.11.1.js"></script>
上面的代碼現在對我的級聯列表有所幫助,我希望執行的搜索代碼
<?php
$fname = mysqli_real_escape_string($con, $_POST['fname']);
$sql1 = "SELECT * FROM office WHERE fname LIKE '%$fname%';
$result = mysqli_query($con, $sql1);
if (mysqli_num_rows($result) > 0)
{
while($row = mysqli_fetch_assoc($result)) {
echo $row["fname"];
//would like to get all the data from the table here
}
} else {
echo "0 results";
}
mysqli_close($con);
?>
如前所述,當用戶從第二個下拉列表中選擇值時,我希望基於第二個下拉列表中選擇的參數來獲取搜索結果,並且結果應顯示在搜索下方的同一頁面上酒吧
在您的html代碼添加之后
<div class="showsearch"></div>
js代碼
$(document).ready(function(){
$('#drop2').on('change',function(){
var fname = $(this).val();
// rename your file which include $fname with get_search_data.php
if(fname !== ""){
$.post('get_search_data.php',{fname: fname},function(data){
$('.showsearch').html(data);
});
}
});
});
get_search_data.php
<?php
include("connection.php");
if(isset($_POST['fname'])){
$fname = mysqli_real_escape_string($con, $_POST['fname']);
}
$sql1 = 'SELECT * FROM office WHERE fname LIKE "%'.$fname.'%"';
$result = mysqli_query($con, $sql1);
if (mysqli_num_rows($result) > 0)
{
while($row = mysqli_fetch_assoc($result)) {
echo $row["fname"]; // this data should appear in showsearch div
}
} else {
echo "0 results";
}
mysqli_close($con);
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.