24 августа 2013
6515
select, отправка через форму данных

Отправка данных через тег form посредством тега select без нажатия кнопки submit

JavaScript
Демонстрация » Скачать »

Возвращаясь к предыдущему уроку, где мы рассматривали спряжение окончания слов на php, хотелось бы рассказать про один момент, который позволяет отправлять данные через тег form посредством тега select без нажатия кнопки submit, то есть данные спокойно обновляются при выборке тегом select

 

И так, как же это сделать. Для начала мы возьмем прошлый урок, где у нас была переменная $count и с ней будем работать. На демо версии отчетливо видно, что при смене количества товаров в теге select, меняются окончания товаров, то есть функция успешно работает. Теперь давайте посмотрим, как же это можно реализовать.

 

Для начала мы создадим тег form и придадим ему идентификатор element, который будет работать с тегом select.

 

<form id='element'>

 

 

Можете так же указать action, если у Вам будет запрос на php другому файлу при передаче данных. К примеру:

 

<form action='какой то файл' method='post' id='element'>

 

Затем в теге select мы пропишем событие на JavaScript onchange, которое и будет работать не нажимая при этом кнопку submit, а также дадим имя count, как раз оно и будет обращаться к функции по спряжению окончания слов товаров к переменной $count

<select name='count' onchange="document.getElementById('element').submit()">

 

Далее теги option с количеством товаров.

 

<option value=''>Выберите кол-во товаров</option>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='10'>10</option>

 

Теперь нам остается взять код скрипта с прошлого урока и все готово! 

 

Вот весь рабочий скрипт:

 


<form id='element'>
<select name='count' onchange="document.getElementById
('element').submit()">
<option value=''>Выберите кол-во товаров</option>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='10'>10</option>
</select><br><br>

<?
function conjugation_words($col_max, $word1, $word2,
$word3)
//функция с параметрами кол-ва товаров и сами товары
// с правильным спряжением
{
$col_max = abs($col_max) % 100; //переборка букв алфавита
$col_min = $col_max % 10; // установка определенных значений
// для 10% окончаний
if ($col_max > 10 && $col_max < 20) return $word3;
// если максимальное кол-во больше 10 и не превышает 20, то записывать
// с окончанием товар"ов"
if ($col_min > 1 && $col_min < 5) return $word2;
// если минимальное кол-во больше 1 или меньше 5, то записывать
// с окончанием товар"а"
if ($col_min == 1) return $word1;
// если минимальное кол-во равно 1, то записывать как товар
return $word3;
// повторить параметр 4, если все остальные значения не подошли
}

echo "Вы выбрали $count";  echo conjugation_words($count,'товар', 'товара', 'товаров');
// Вывод кол-во товаров $count и всех слов с различными окончаниями.
?>
</form>

 

 

 

Спасибо Вам за внимание!