通过选择选项菜单筛选SQL数据HTML - PHP

问题描述:

我想在选择选项菜单上创建一个筛选器选项,但我似乎无法使其工作。 我的过滤器的目标是过滤“stad”上的数据。通过选择选项菜单筛选SQL数据HTML - PHP

表(回族):

id = int(2) primary key Auto_increment 
stad = varchar(25) 
stad means city in the Dutch Language 

------------------------- 
| id | .....| stad  | 
| 1 |......| Amsterdam | 
| 2 |......| London | 
------------------------- 

哪里..​​...是其他列。

我在while循环中循环选项菜单,所以当有一个新的“stad”注册时,它会自动添加一个新选项。 我是否必须使用按钮才能接收选定的选项并过滤显示的数据?

我的PHP文件:

<form action="" method="post" name="filter"> 
      <select class="filtermenu"> 
       <option selected="true" disabled="disabled">Plaatsnaam</option> 
       <?php while($overzichtHuis = mysqli_fetch_assoc($overzichtRes)): ?> 
        <option value="<?php echo $overzichtHuis['stad']?>"><?php echo $overzichtHuis['stad']?></option> 
       <?php endwhile; ?> 
      </select> 
      <input type="submit" value="Filter toepassen" onclick="insert()"> 
     </form> 

//SQL Query 
    $overzichtData = "SELECT * FROM huis"; 
    $overzichtRes = mysqli_query($con, $overzichtData) or die(mysqli_error($con)); 

$detailsData = "SELECT * FROM huis ORDER BY id DESC"; 
$detailsRes = mysqli_query($con, $detailsData) or die(mysqli_error($con)); 

//Displayed data 
    <?php while($detailsHuis = mysqli_fetch_assoc($detailsRes)): ?> 
       <div class="item overzicht-item"> 
        <figure class="overzichtfoto"> 
         <img src="<?php echo $detailsHuis['afbeelding']?>" alt="" class="img-responsive"> 
         <?php if($detailsHuis['type'] == "Te koop"):?> 
         <span class="label koop"><?php echo $detailsHuis['type']?></span> 
         <?php elseif($detailsHuis['type'] == "Te huur"):?> 
         <span class="label huur"><?php echo $detailsHuis['type']?></span> 
         <?php endif;?> 
         <a href="huis.php?id=<?php echo $detailsHuis['id']?>"><div class="overlay-overzicht"></div></a> 
        </figure> 
        <div class="overzicht-details"> 
         <div class="item-header clearfix"> 
          <h3 class="overzicht-titel"><a href="huis.php?id=<?php echo $detailsHuis['id']?>">Huis in <?php echo $detailsHuis['stad']?></a></h3> 
          <span class="favorite"><i class="fa fa-heart" style="margin-right: 0px;"></i></span> 
          <span class="overzicht-plaats"><i class="fa fa-map-marker"></i><b><?php echo $detailsHuis['stad']?></b> <?php echo $detailsHuis['provincie']?></span> 
         </div> 
         <div class="item-detail overzicht-detail"> 
          <span class="price price-overzicht">&euro; <?php echo $detailsHuis['prijs']?></span> 
          <div class="left"> 
           <span class="bed"><?php echo $detailsHuis['kamers']?></span> 
           <span class="bath"><?php echo $detailsHuis['badkamers']?></span> 
           <span class="garage"><?php echo $detailsHuis['garage']?></span> 
          </div> 
          <div class="right"> 
           <span class="area"><?php echo $detailsHuis['oppervlakte']?> m2</span> 
          </div> 
         </div> 
        </div> 
       </div> 
       <?php endwhile; ?> 

//Me trying to create a PHP Function 
function insert(){ 
    if(isset($_RETURN['value'])){ 
     if($_RETURN['filtermenu'] == 'Amsterdam') 
     { 
      $query = "SELECT * FROM huis WHERE stad='Amsterdam'"; 
     } 
     elseif($_RETURN['filtermenu'] == 'London') 
     { 
      $query = "SELECT * FROM huis WHERE stad='London'"; 
     } 
     else 
     { 
      $query = "SELECT * FROM huis"; 
     } 
     $sql = mysql_query($overzichtRes); 
    } 
} 
+0

我不确定我是否正确理解你的问题,显示数据的代码位在哪里?你究竟想要做什么?你的查询在哪里? –

+0

我在第一篇文章中添加了更多代码。 –

+0

http://www.w3schools.com/php/php_ajax_database.asp我认为这是你正在寻找的 – SML

您可以连接onchange ATTR到select标签本身。你甚至不需要form标签,如果你使用JavaScript处理这个事件(正如我可以从你的代码中看到的那样)

+0

你能告诉我一个例子吗?我从来没有使用Javascript。 onclick属性只是我试图创建一个PHP函数,并希望它的工作,但没有奏效。 –

+0

如果您没有使用JavaScript,您的页面将在选择选项后刷新或重定向。在AJAX中做这件事情会更有意义。查看我发布的基础教程链接。 – SML

+0

看看@ user6439245的例子。从我自己,我可以补充说,纯js解决方案是非常可怕的,所以你可以尝试jQuery,它有一个简单的语法来做这个 –