Не срабатывают правила при двух кнопках submit на форме.

zdimon

Новичок
Не срабатывают правила при двух кнопках submit на форме.

На форме находится две кнопки типа submit.
Немогу понять почему при нажатии одной мои правила
$form->addRule() срабатывают а при нажатии на второй нет.
 

das6745

Новичок
zdimon
тут телепатов нет. либо толком объясни свою проблемму, приведи код (или его часть) и расскажи как решал и где искал либо не мусорь топиком.
 

zdimon

Новичок
Пардон.
Использую QuickForm Pear
Код
PHP:
$form = new HTML_QuickForm('sms_form', 'POST','?action=mailbox&new=1',null,' enctype="multipart/form-data"  ', TRUE);
$form->addElement('submit', 'btnSubmit', 'Кнопка 1','id=but_spr');
 $form->addElement('text', 'user', $_SESSION['messages']['field_name'],'');
       $form->addElement('submit', 'btnSubmit1', 'Кнопка 2','id=but_spr');

$form->addRule('user', $_SESSION['messages']['mes_empty_login'].'</br>', 'required');

 if ($form->validate())
	    {
.....
}
 

das6745

Новичок
zdimon
я с QuickForm дела не имел =). скорее всего дело с хтмлом формы и обработке данных. поиграйся со след. кодом, может он тебя натолкнет на путь истинный.
PHP:
<form action="x.php" method="POST">
<input type="text" name="text"/>
<input type="submit" name="btn_1" value="foo"/>
<input type="submit" name="btn_2" value="bar"/>
<form>

<?php
var_dump($_POST);
?>
 

Pigmeich

Новичок
zdimon
Два элемента с одним id.

id по всем стандартам начиная не знаю с какой версии HTML должен быть уникальным в пределах страницы или фрейма.
 

zdimon

Новичок
Изменил id - не помогло, вторая кнопка мои правила пропускает.
 

Фанат

oncle terrible
Команда форума
правильно.
потому что ответ тебе давали шаманы и прорицатели.

с чем у тебя проблема? С HTML кодом формы или с обработкой формы?
 

Фанат

oncle terrible
Команда форума
Ты уверен? Все ли нужные данные и в нужном виде прихордят на сервер?
 

camka

не самка
Когда две сабмит кнопки отсылается только та, на которую нажали. Вот по этому и ошибка.
 

zdimon

Новичок
Так ошибки никакой нет.
Кнопки строятся одинаково.
Как это при нажатии на одну все данные нужные и в нормальном виде, а при нажатии на другую все правила валидации игнорируются?
 

Фанат

oncle terrible
Команда форума
zdimon
почему ты пишешь про первую кнопку что все данные в нужном виде, а про в торую - какие-то правила?

ты вообще прелдставляешь себе, какие данные должна послать форма?
а в глаза видел?

или только и можешь пищать, как ципленочек "у меня правило не срабатывает, покажите, что в коде исправить"
 

zdimon

Новичок
почему ты пишешь про первую кнопку что все данные в нужном виде, а про в торую - какие-то правила?
потому что ты упомянул про некорректные данные передаваемые формой

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

т.е. на одной форме две кнопки сабмит и правила валидации срабатывающие только на одной, ведь если бы данные не отправлялись или отправлялись неверно то форма бы не свалидировала бы, а так я оставляю поле пустым (при проверке на пустое) и форма валидирует.

или только и можешь пищать, как ципленочек "у меня правило не срабатывает, покажите, что в коде исправить"
спасибо за комплимент (басом)
 

das6745

Новичок
я ж тебе пример дал с двумя кнопками, разберись с ним а потом лезь дальше
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: zdimon
На форме находится две кнопки типа submit.
Немогу понять почему при нажатии одной мои правила
$form->addRule() срабатывают а при нажатии на второй нет.
1) В начало скрипта добавь
PHP:
PEAR::setErrorHandling(PEAR_ERROR_DIE);
2) Если после этого новых мыслей не появится, то покажи-ка сгенерированный html для этой формы.
 

Фанат

oncle terrible
Команда форума
возможно ты не представил себе суть проблемы
возможно, ты представляешь себе, что очень умный.
а все вокруг дураки, и не поняли твоей проблемы.
вот только почему-то это никак тебе не помогает её решить.

весь твой интеллект уходят на теоретические объяснения - почему не имеет смысла делать, что тебе говорят.

очень интересный феномен, кстати
 
Сверху