Показать сообщение отдельно
  #1 (permalink)  
Старый 10.09.2016, 22:19
Интересующийся
Отправить личное сообщение для Zaratustra Посмотреть профиль Найти все сообщения от Zaratustra
 
Регистрация: 10.09.2016
Сообщений: 10

Отправка формы только после выбора select
Доброго времени суток, необходимо организовать поиск без перезагрузки страницы с выбором категории где искать, в данном случае категорией является столбец в БД. Суть в том что бы сначала selectом выбрать столбец для поиска а затем в инпуте вводить сам запрос для поиска.

сейчас все работает на инпуте, то есть сам инпут
<input type="text" class="search_input" name="search" id="search" class='search_box'/>


ajax запрос

<script type="text/javascript">
$(function(){
  $("#search").keyup(function(){
     var search = $("#search").val();
     $.ajax({
       type: "POST",
       url: "search_ajax.php",
       data: {"search": search},
       cache: false,                                 
       success: function(response){
          $("#resSearch").html(response);
       }
     });
     return false;
   });
});

</script>


ну и сам php обработчик

if (isset($_POST['search']))  {
		$s = $_POST['search'];
	echo $s;
}

$query_to_db = mysql_query("SELECT * FROM equipment WHERE client_name LIKE '%$s%'");


и все работает отлично, то есть при вводе на любое изменение в input выводится соответствующее значение из таблицы "equipment" и столбца "client_name", но нужно динамически выбирать поле selectoм, что бы например было так:

<select class="search_in" name="search_in" id="search_in"> 
        <option value='' selected='selected'>Искать по</option>
        <option VALUE="id">Номер</option>
        <option VALUE='status'>Статус</option>
        <option VALUE='client_name'>Имя клиента</option>
	<option VALUE='client_tel'>Телефон клиента</option>
</select>


и уже соответственно php обработчик будет выглядеть:

if (isset($_POST['search_in']))  {
	$s_i = $_POST['search_in'];
	echo $s_i;

}

if (isset($_POST['search']))  {
		$s = $_POST['search'];
	echo $s;
}

$query_to_db = mysql_query("SELECT * FROM equipment WHERE $s_i LIKE '%$s%'");


а ajax примерно!!!! вот так:

<script type="text/javascript">
$(function(){
  $("#search").keyup(function(){
     var search = $("#search").val();
     $.ajax({
       type: "POST",
       url: "search_ajax.php",
       data: {"search": search},
       cache: false,                                 
       success: function(response){
          $("#resSearch").html(response);
       }
     });
     return false;
   });
});


$(function(){
	
	
    $("#search_in").change(function(){
        $.ajax({
            type : 'POST',
            url : 'search_ajax.php',
            data : { search_in: $(this).val() },
            success: function(response){
          $("#resSearch").html(response);
       }
        });
    })
}


);

</script>


по отдельности все работает, задача в том что бы сначала выбрать значение в select, сохранить, но передавать его вместе с изменяющимся inputom. Сейчас это дело передается сразу как только тронуть или input или select, и соответственно php обработчик дает ошибку ибо не находит второго параметра, а нужно что бы select "ждал" ввода в input и передавался только вместе с ним, перелопатил много инфы, толком ничего не получилось, может кто в курсе как такое организовать?
Ответить с цитированием