Проблема следующая: есть выпадающий список, он берёт данные из БД, потом строится на основании выбранных данных и в конце выводится окончательная таблица. Есть поиск тоже по БД. Так вот если воспользоваться поиском, то результат никуда не уходит со страницы если начинаю пользоваться выпадающими списками. Списки работают на AJAX Помогите, не могу сообразить как сделать чтоб результат очищался. unset не помогает, т.к. страница не перегружается при пользовании выпадающим списком. PHP: <!DOCTYPE html> <html> <head> <title>Выбор марки и модели автомобиля</title> <!-- Подключаем библиотеку jQuery --> <script src="//libs.raltek.ru/libs/jquery/1.8.3/js/jquery-1.8.3.js"></script> <!-- Подключаем таблицу стилей --> <link rel="stylesheet" type="text/css" href="css/style.css" /> <!-- Подключаем JavaScript-файл с нашим сценарием, который и будет получать данные об автомобилях --> <script src="js/custom.js"></script> <script src="js/table.js"></script> </head> <body> <?php require_once('php/db.php'); ?> <h1>Подбор амортизаторов по каталогу</h1> <?php $marki = pobierzMarki(); ?> <div id="form"> <form> <div id="marki"> <select id="select_marka"> <option value="">Выберите марку</option> <?php foreach($marki as $marka): ?> <option value="<?php echo $marka['marka_id'];?>"><?php echo $marka['marka_name'];?></option> <?php endforeach; ?> </select> </div> <div id="modele"> </div> <div id="cars"> </div> </form> <div id="search"> <form class="search" action="<?echo $PHP_SELF?>" method="post"> <input name="search" placeholder="Поиск по номеру..." type="search" required> <button type="submit"></button> </form> </div> <div id="info"> </div> <?php if(isset($_POST['search']) && $_POST['search'] != ""): ?> <?php $search = $_POST['search']; $amortizators = search($search); //print_r ($amortizators); ?> <hr/> <div class="tbl-header"> <table cellpadding="0" cellspacing="0" border="0"> <thead> <tr> <th>AUTO</th><th>YEAR</th><th>RANGE_TYPE</th><th>INSTALL</th><th>NUMBER</th> </tr> </thead> </table> </div> <div class="tbl-content"> <table> <?php foreach($amortizators as $amort): ?> <?php if($amort['correction'] != ''){ echo "<tr><td colspan='5'><hr /></td></tr>"; echo "<tr><td>". ucfirst($amort['marka_name']). " " . ucfirst($amort['model_name']). "</br>".$amort['car_name'] ."</br>". $amort['correction']."</td><td>" . $amort['year'] . "</td><td>" . $amort['range_type'] . "</td><td>" . $amort['install'] . "</td><td>" . $amort['art_number']; }else{ echo "<tr><td>". ucfirst($amort['marka_name']). " " . ucfirst($amort['model_name']). " ".$amort['car_name'] ."</td><td>" . $amort['year'] . "</td><td>" . $amort['range_type'] . "</td><td>" . $amort['install'] . "</td><td>" . $amort['art_number']; } ?> </td> </tr> <?php endforeach; ?> </table> </div> <?php endif; ?> </div> </body> </html> Тут формируются 3 выпадающих списка из базы данных PHP: <?php include('db.php'); ?> <?php if(isset($_POST['marka_id']) && $_POST['marka_id'] != ""): ?> <?php $marka_id = $_POST['marka_id']; $modele = pobierzModeleMarki($marka_id); ?> <select id="select_model"> <option value="">Выберите модель</option> <?php foreach($modele as $model): ?> <option value="<?php echo $model['model_id'];?>"><?php echo $model['model_name'];?></option> <?php endforeach; ?> </select> <?php endif; ?> <?php if(isset($_POST['model_id']) && $_POST['model_id'] != ""): ?> <?php $model_id = $_POST['model_id']; $cars = pobierzSamochodyModelu($model_id); ?> <select id="select_car"> <option value="">Выберите авто</option> <?php foreach($cars as $car): ?> <option value="<?php echo $car['car_id'];?>"><?php echo $car['car_name'];?></option> <?php endforeach; ?> </select> <?php endif; ?> <?php if(isset($_POST['car_id']) && $_POST['car_id'] != ""): ?> <?php $car_id = $_POST['car_id']; $autos = pobierzAmort($car_id); ?> <hr/> <div class="tbl-header"> <table cellpadding="0" cellspacing="0" border="0"> <thead> <tr> <th>AUTO</th><th>YEAR</th><th>RANGE_TYPE</th><th>INSTALL</th><th>NUMBER</th> </tr> </thead> </table> </div> <div class="tbl-content"> <table> <?php foreach($autos as $auto): ?> <?php if($auto['correction'] != ''){ echo "<tr><td colspan='5'><hr /></td></tr>"; echo "<tr><td>". ucfirst($auto['marka_name']). " " . ucfirst($auto['model_name']). "</br>".$auto['car_name'] ."</br>". $auto['correction']."</td><td>" . $auto['year'] . "</td><td>" . $auto['range_type'] . "</td><td>" . $auto['install'] . "</td><td>" . $auto['art_number']; }else{ echo "<tr><td>". ucfirst($auto['marka_name']). " " . ucfirst($auto['model_name']). " ".$auto['car_name'] ."</td><td>" . $auto['year'] . "</td><td>" . $auto['range_type'] . "</td><td>" . $auto['install'] . "</td><td>" . $auto['art_number']; } ?> </td> </tr> <?php endforeach; ?> </table> </div> <?php endif; ?> <script> $('#select_model').change(function(){ $.post( 'php/populate_select.php', { model_id:$('#select_model').val()}, function(res){ $('#cars').html(res); } ) }); </script> <script> $('#select_car').change(function(){ $.post( 'php/populate_select.php', { car_id:$('#select_car').val()}, function(res){ $('#info').html(res); } ) }); </script>
или если сделать поиск тоже на AJAX.... проблема остаётся. Т.е. мне надо убирать результат поиска или результат Select из выпадающего списка. А так получается 2 результата одновременно показываются.
вот наглядная картинка как получается вверху - это выбранное выпадающим списком, внизу - поиском. И то и другое на Аяксе(т.е. страницу не перегружаю)
сделал. Код (Javascript): function(res){ $('#modele').html(res); $('#search-result').empty(); } document.getElementById('search-result').innerHTML = response; document.getElementById('modele').innerHTML = '';