dush93 Ответов: 1

Как отправить зависимые значения dropdwon в базу данных на PHP


Я создал зависимый выпадающий список, используя значения базы данных.Теперь я хочу отправить выбранные пользователем два варианта в поисковый запрос,который покажет результат в соответствии с выбранным вариантом.в течение всего дня я пытался, но не смог этого сделать, потому что выбранные пользователем два значения не переходят в поисковый запрос. search.php файл. Помощь была бы очень признательна

Что я уже пробовал:

Это форма, которая извлекает значения параметров databse и отправляет их в search.php для поиска
form action="search.php" method="post">
     
<div class="col-lg-2"> 
    <select  name="country_name" id="country_name"  class="country">
    <option >Select Country</option>
        <?php
        include('config.php');
        $sql = mysqli_query($con,"select * from district");
        while($row=mysqli_fetch_array($sql))
        {
        echo '<option value="'.$row['country_id'].' ,'.$row['country_name'].'">'.$row['country_name'].'</option>';
        } ?>
    </select>           
    
</div>  
<div class="col-lg-2">               

    <select  class="city" id="city_name" name="city_name">
    <option>Select City</option>
    </select>
</div>
<input class="form-control" type="submit" name="submit" value="Search">
<script type="text/javascript">
$(document).ready(function()
{
$(".country").change(function()
{
var country_id=$(this).val();
var post_id = 'id='+ country_id;

$.ajax
({
type: "POST",
url: "ajax.php",
data: post_id,
cache: false,
success: function(cities)
{
$(".city").html(cities);
} 
});

});
});


Это и есть search.php, который будет выполнять поисковый запрос
<?php include('config.php');?>
<?php

$country_name=$_POST["country_name"];
$services=$_POST["services"];
$city_name=$_POST["city_name"];
$sql="select * from services where district like '%" . $country_name . "%' AND service like '%" . $services . "%' AND city like '%". $city_name ."%' ";



$result = $con->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["district"]. $row["service"]. $row["city"];
    }
} else {
    echo "0 results";
}
$con->close();
?>


Это и есть ajax.php который будет извлекать зависимые значения
<?php

include('config.php');
if($_POST['id']){
	$id=$_POST['id'];
	if($id==0){
		echo "<option>Select City</option>";
		}else{
			$sql = mysqli_query($con,"SELECT * FROM `city` WHERE country_id='$id'");
			while($row = mysqli_fetch_array($sql)){
				echo '<option value="'.$row['city_id'].','.$row['city_name'].'">'.$row['city_name'].'</option>';
				}
			}
		}
?>

1 Ответов

Рейтинг:
1

W∴ Balboos, GHB

Вы не сказали, что если какие-либо значения, получаем search.php.

Вы также не показываете нам, что/куда вы идете, чтобы загрузить свои элементы опций для SELECT. Из-за этого ваш, вероятно, может быть так же просто, как вы не устанавливаете свое значение="" в каждом параметре, чтобы вы не получали никаких значений.

Если уж на то пошло, ваш поиск SQL использует предложения LIKE - но если вы выбираете значения из списка SELECT, то это точные значения, и они должны быть"=", а не "LIKE", потому что вы указали их (а не пользователь).

Проверьте вышесказанное - есть ли у вас вообще какие-либо значения для ваших вариантов. Вот что я имею в виду:

<option value="this is a value">This is NOT a value</option>