这是我的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%';
答案 0 :(得分:0)
您应该将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.
?>
::::::::::::::::::::::::::::::::::::::::::::::: :: EDIT ::::::::::::::::::::::::::::::::::::::::::::
没有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
}
?>