php - 如何查询 html 选择表单?

标签 php html mysql sql

这是我的 html 选择表单。

<select name='md' multiple="yes" size="10">
                <optgroup label="Оpel">
                    <option value="Astra" name='Ast'>Astra</option>
                                </optgroup>
                                <optgroup label="Nissan">        
                    <option value="Pulsar" name='Puls'>Pulsar</option>
                    <option value="Almera" name='Alm'>Almera</option>
                </optgroup>
                <optgroup label="Honda">
                    <option value="Civic" name='Civ'>Civic</option>
                                 </optgroup>     
                                 <optgroup label="Audi">
                    <option value="Q7" name='Q'>Q7</option>                 
                </optgroup>

                <optgroup label="BMW">
                    <option value="M3" name='M'>M3</option>
                    </optgroup>
                                <optgroup label="Renault">
                                        <option value="Megane" name='Meg'>Megane</option>
                    </optgroup>
                                <optgroup label="Mercedes">
                                        <option value="G-Class" name='G'>G-Class</option>
                                        </optgroup>
                        </select>

这是我的 PHP:

$md = (isset($_POST['md']));

我应该如何进行查询,以便当用户从选择菜单中选择一个选项时调用表中与所选选项匹配的所有行。

这是我的整个查询,我需要将选择字段添加为变量以供用户搜索。

 $sql = "
 SELECT c.brand
      , c.model
      , c.reg_num
      , c.horse_powers
      , c.color
      , u.first_name
      , u.last_name 
   FROM cars c
   JOIN clients_cars uc 
     ON c.id = uc.cars_id 
   JOIN clients u
     ON uc.clients_id = u.id 
  WHERE c.id IN (   SELECT DISTINCT clients_cars.cars_id 
                               FROM clients_cars 
                              WHERE rent_date BETWEEN '$d1' AND '$d2' 
                                 OR return_date BETWEEN '$d1' AND '$d2' 
                                 OR ((return_date>'$d2')AND(rent_date<'$d1')) 
                                 OR ((horse_powers > '$hp1') AND (horse_powers < '$hp2'))
                   )
  "; 

应该是这样还是我错了?

SELECT * FROM table1 WHERE column1 LIKE '%$md%';

最佳答案

你应该为这个实现使用ajax,

$('#id_of_select').change(function(){

    $value = $(this).val();
    $.post('new_php_file.php',{md:$value},function(response){
        alert(response);
    })

});

new_php_file.php :

<?php
    $md = $_POST['md'];
    //You can use it now as you wanted...like SELECT * FROM table1 WHERE column1 LIKE '%$md%'; Just dont forget to echo your result.      
?> 

::::::::::::::::::::::::::::::::::::::::::::::::编辑::::::::::::::::::::::::::::::::::::::::::::

没有 Ajax:

我假设你在 index.php 中工作

HTML:

<form method="POST"> <!-- No need to set action parameter -->
    <select name='md' multiple="yes" size="10">
    ..
    ..
    <input type="submit" value="Click to Submit"/>
</form>

PHP:

在同一个 index.php 文件中,

 <?php

      if(isset($_POST['md']))
      {
          $md = $_POST['md']; 

         // Your business logic here

      }
 ?>

关于php - 如何查询 html 选择表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27315897/

相关文章:

php - 如何在不从 View 调用 Controller 的情况下在 codeigniter 中显示数据库中的内容?

mysql - 将 mysql 行导出到不同的文件中

php - 直接在 PHP 中访问 psql-array

php - mysql中的三个表之间的连接

javascript - 为什么替换 iframe 中的 <body> 标记会导致添加额外的 <head> 标记?

html - 如何使所有大小不同的 <div> block 共享相同的顶部边界(边距)?

html - css边距插入 body

PHP 在 PDO 语句准备时崩溃

php - OkHttp POST 似乎没有发送请求正文

php - 基于变量 MYSQL IPN 的 substr 问题