[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Динамический список
287_08
Всем доброго времени суток. Имеется динамические списки, их два. В одном должность, в другом фамилии. Есть также обычный третий список.. Второй динамический, тоесть меняется в зависимости от первого. ИМеем также проверку

PHP
if (empty($dolj)) {
echo 
'вы не выбрали должность';
}
if (empty(
$family)) {
echo 
'вы не выбрали фамилию';
}

Значения передаются POST (должности, фамилии и оклада.)
Подскажите как сделать второй список динамически зависимым от первого, и передавать его значение в пост.
Вторая проблема, это страница перезагружается, указываются ошибки, идет проверка (если не пусто значение должность, то выбирается должность), тоже самое с окладом, а вот как фамилию передать?
Или проще проверку сделать на яве?
___
Чувствую, что непонятно написал, счас камни полетят!



Спустя 4 минуты, 9 секунд (7.09.2009 - 09:31) sergeiss написал(а):
Тему перенес в другой раздел.

И используй тэги оформления для кода, плз!

Спустя 31 минута, 22 секунды (7.09.2009 - 10:02) glock18 написал(а):
Цитата
Чувствую, что непонятно написал, счас камни полетят!

ну зачем сразу так?

1. есть куча вариантов, как сделать список зависимым. все здесь обсуждались уже:
1.1. ajax
1.2. загружать все значения в массив на стороне клиента. фильтровать его и показывать в select только те, которые проходят фильтр (определяющий select)
1.3. onchange (или onselect) у select поставить обработчик, который будет обновлять эту же страницу, и отправлять выбранное значение на сервер. На основе это значения наполнишь зависимый select нужными значениями.

2. Вопрос вообще не понял. Проверку желательно делать и там, и там. На стороне сервера проверку делать обязательно. Какой текст ошибки, которая "указывается"?

Спустя 27 минут, 7 секунд (7.09.2009 - 10:30) 287_08 написал(а):
PHP
<p><b>Ваше имя:</b><br>
   <
input name="nick" type="text" size="40">
  </
p>


Например страница регистрации. Пользователь ввел все данные. Город зависит от страны. если пользователь не ввел ник, то выдается сообщение о том что он не ввел ник, но остальное, что он ввел выводится в эти поля. Например как страница регистрации здесь, если произошла ошибка, чтобы заново все не вводить. Вот как заполнить второй динамически изменяющийся список город?


Спустя 16 минут, 45 секунд (7.09.2009 - 10:46) glock18 написал(а):
нужно выставить атрибут selected необходимой option (та которая обладает выбранным значением)

Спустя 43 минуты, 32 секунды (7.09.2009 - 11:30) 287_08 написал(а):
Вечером скину код что я написал, так понятнее смогу обьяснить что мне надо))

Спустя 1 день, 55 минут, 16 секунд (8.09.2009 - 12:25) 287_08 написал(а):
Я сократил часть кода всего до трех машин. Вот после перезапуска страницы, когда форму отправляешь, происходит проверка заполненности полей. Если не все поля заполнены, то старые данные, которые только что вводились заносятся. То есть цена будет заполнена. А вот как сделать так чтобы были заполнены поля модель и производитель. Этого я не знаю.
И вот еще такой вопрос, проверку заполненности полей можно сделать на яве, но на пхп лучше оставить, ведь юзер может отключить выполнение ява-скриптов. Вот код:

PHP
&#60;script type="text/javascript" >
function selChange(marka) {with (document.add_in_board.model) {
selNum marka.proizvoditel.value;
options.length 0;




    if ( 
selNum == "1")  {with (document.add_in_board.model) { options.length 0;options[options.length] = new Option();
options[options.length] = new Option('Ace','1');
options[options.length] = new Option('Aceca','2');
options[options.length] = new Option('Cobra','3');
options[options.length] = new Option('Mamba','4');
selectedIndex 0;options[options.length] = new Option(); };  }
if (
selNum == "2")  {with (document.add_in_board.model) { options.length 0;options[options.length] = new Option();
options[options.length] = new Option('CL','5');
options[options.length] = new Option('CSX','6');
options[options.length] = new Option('EL','7');
options[options.length] = new Option('Integra','8');
options[options.length] = new Option('Legend','9');
options[options.length] = new Option('MDX','10');
options[options.length] = new Option('NSX','11');
options[options.length] = new Option('RDX','12');
options[options.length] = new Option('RL','13');
options[options.length] = new Option('RSX','14');
options[options.length] = new Option('SLX','15');
options[options.length] = new Option('TL','16');
options[options.length] = new Option('TSX','17');
selectedIndex 0;options[options.length] = new Option(); };  }
if (
selNum == "3")  {with (document.add_in_board.model) { options.length 0;options[options.length] = new Option();
options[options.length] = new Option('Pickup','18');
selectedIndex 0;options[options.length] = new Option(); };  }


selectedIndex 0;options[options.length] = new Option(); };  }

</script>

<? if (!empty($_POST)){   ## строчка проверяет  на первый запуск

// проверяем заполненность полей и заносим их в массив errors
    
if (empty($_POST['proizvoditel'])){$errors[] = 'Не выбран  <b>Производитель</b>. <br> ';}
    if (empty(
$_POST['model'])){$errors[] = 'Не выбрана <b>Модель автомобиля</b>. <br> ';}
    if (empty(
$_POST['cena'])){$errors[] = 'Не указана  <b>Цена</b>. <br>';}
    
$cena =   $_POST['cena'];

    if (empty(
$errors)){
        
// тут код, который заносит  в базу данных инфу
        
} else {
        
// выводим ошибки, если таковые есть
                
$HowMany count($errors);
                for (
$z 0$z <= $HowMany$z++) {
                     echo 
$errors[$z];
                }
        }

    }
?>
<form name="add_in_board" action="buh.php" method="POST" ENCTYPE="multipart/form-data">
<p><b> Выберите <u>производителя</u> и  <u>марку</u> автомобиля:</b><br><select name="proizvoditel" size="10" onChange="selChange(this.form)">

<option value="1">AC</option><option value="2">Acura</option><option value="3">Admiral</option></select>

<select name ="model" size="10"></select></p>

<p><b>Цена машины</b><br>
<input name="cena" type="text" class="login_form" size="25" value = "<? echo $cena;?>">
</p>

<input style="height: 35px;" type="submit"
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.