Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Отправка данных из формы "на лету" (https://javascript.ru/forum/dom-window/69029-otpravka-dannykh-iz-formy-na-letu.html)

redsowet 25.05.2017 11:36

Отправка данных из формы "на лету"
 
Добрый день. Прошу вашей интеллектуальной помощи в решении следующих задач:
1.отправка формы на лету после ввода каждого символа или выбора пункта из списка.
2.автофокус на последней использованной текстовой кнопке(НЕ списка).[/indent]

Насколько я понимаю, это решается добавлением событий к тегу HTML кнопки. Но с JS я не знаком.

Поясню. Есть 4 текстовых поля для ввода и 3 списка для выбора, а также скрытая кнопка submit. Сейчас данные всей формы отправляются только по Enter в любом текстовом поле и фокус уходит. Мне нужно чтобы вся форма отправлялась при вводе каждого символа в текстовом поле или выборе элемента списка. В случае работы с текстовым полем - нужно оставить автофокус, чтобы не клацать каждый раз мышкой на него.

<form id="poisk" method="GET" action=""></form>
<tr>                                     
   <td><?php 
   input_menu_poisk("poisk","nomer_zakaz","поиск..") 
   ?></td>
   <td><?php 
   input_menu_poisk("poisk","fio","поиск..") 
   ?></td>
   <td><?php
   select_menu_poisk("poisk","oplata","выбрать..")
   ?></td>
   <td><input form="poisk" type="submit" name="enter" value="!.." style="visibility: hidden "></td>
   <td><?php
   input_menu_poisk("poisk","data_priyoma","поиск..") 
   ?></td>
   <td><?php
   select_menu_poisk("poisk","ispolnitel_name_ispolnitel","выбрать..")
   ?></td>
   <td></td>
   <td></td>
   <td></td>
   <td><?php
   select_menu_poisk("poisk","gotovnost","выбрать..")
   ?></td>
   <td><?php 
   input_menu_poisk("poisk","izmenen","поиск..") 
   ?></td>
  </tr>


function input_menu_poisk($form,$name,$_default)
{
 IF(!empty($_GET[$name]))
 {
    echo   '<input form="'.$form.'" type="text" name="'.$name.'" value="'.$_GET[$name].'">';
 }
 else
 {
    echo   '<input form="'.$form.'" type="search" name="'.$name.'" placeholder="'.$_default.'">';
 }  
} 
 
function select_menu_poisk($form,$name,$_default)
{
 echo '<select  form="'.$form.'" name="'.$name.'"  >
            <option selected >'.$_default.'</option> ';
 $sql=mysql_query("SELECT distinct `$name` FROM `zakaz` ")or die (mysql_error());
 while($oplata=mysql_fetch_row($sql))
 { 
     IF($_GET[$name]==$oplata[0])
     {
     echo '<option selected value="'.$oplata[0].'">'.$oplata[0].'</option>';
     }
     else
     {
     echo '<option value="'.$oplata[0].'">'.$oplata[0].'</option>';
     }
 }
 echo '</select>';
}

laimas 25.05.2017 11:43

Цитата:

Сообщение от redsowet
отправка формы на лету после ввода каждого символа

Зачем, живой поиск нужен?

ksa 25.05.2017 13:32

Цитата:

Сообщение от redsowet
отправка формы на лету после ввода каждого символа или выбора пункта из списка

Вот статейка...
https://kylaksizov.ru/51-zhivoy-poisk-ajax-php.html

laimas 25.05.2017 14:00

ksa,
серверный обработчик запросов этой статейки полная чушня.

laimas 25.05.2017 14:11

Клиент тоже запросто может завалить сервер запросами.

ksa 25.05.2017 14:19

Цитата:

Сообщение от laimas
серверный обработчик запросов этой статейки полная чушня

Это как сама идея такого поиска... :D
Цитата:

Сообщение от laimas
Клиент тоже запросто может завалить сервер запросами.

ТС этого и хотел.
Отправлять запросы по каждому (!) клику клавиатуры.

redsowet 25.05.2017 16:34

Всем, привет.
Я не шибко понимаю JS. Мне не нужен "живой поиск" с выплывающими подсказками. Мне нужно только чтобы происходило событие submit по событию onkeypress. Ну и автофокус.

laimas 25.05.2017 17:22

сначала ответьте на вопрос в чем и что вы хотите искать?

redsowet 25.05.2017 18:06

Эти кнопки - поля выборки в БД.
Вывод таблицы из БД на страницу генерируется посредством PHP автоматически на основании сконфигурированного запроса с условиями из полученных через GET данных. Кнопка должно отправлять в GET данные не через нажатие submit, а автоматиечки после ввода каждого символа, при этом не теряя фокус.
Вопрос корректности ввода или частоты запросов, а тем более безопасности не стоит. В данном это будет демонстрационная программа. Поэтому нужно самое простое решение: нажал-отправил.

laimas 25.05.2017 18:38

Цитата:

Сообщение от redsowet
поля выборки в БД

То есть, список выбирает поле таблицы в котором нужно произвести поиск по введенному в поле формы?


Часовой пояс GMT +3, время: 19:49.