cercare nel database in base al valore selezionato dal database

Ho un codice per l'elenco a cascata che funziona perfettamente, ci sono due elenchi a discesa e il secondo dipende dal primo, tuttavia desidero eseguire una ricerca (dalla tabella del database) in base al parametro scelto da il secondo elenco a discesa. Ho anche il codice per la ricerca, ma non so come combinare il codice di ricerca con il codice di elenco a cascata

Ci sono due pagine per l'elenco a discesa a cascata. Il primo è index.php e il secondo è fetch_state.php. c'è il codice

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_arrays($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_arrays($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> 

il codice sopra aiuta nella mia list a cascata ora il codice per la ricerca che desidero eseguire

 <?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); ?> 

Come accennato in precedenza anche, quando l'utente seleziona il valore dal secondo elenco a discesa, desidero get il risultato della ricerca in base al parametro selezionato nel secondo elenco a discesa e il risultato dovrebbe essere visualizzato nella stessa pagina sotto la ricerca bar

dopo aver aggiunto il codice html

 <div class="showsearch"></div> 

codice 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); }); } }); }); 
  • dopo quel codice dovrebbe visualizzare $ row ['fname'] per showsearch div
  • devi includere ("connection.php"); in 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); ?>