簡體   English   中英

根據從數據庫中選擇的值搜索數據庫

[英]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);
            });
          }
    });
});
  • 在該代碼之后,它應該顯示$ row ['fname']到showsearch div
  • 您必須包括(“ connection.php”); 在get_search_data.php中

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM