Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проверка генерируемой формы
 
 автор: Front   (20.11.2007 в 09:42)   письмо автору
 
 

Добрый день!
Подскажите пож-та как сделать чтобы генерируемая php форма проверялась javascript:

    <SCRIPT language='JavaScript' type='text/javascript'>
function check_form(a)
{

    if(a.как здесь сгенерить переменную которая будет выводится php скриптом.value.length<=1){alert("Вы не заполнили поле - Тема.");return false;}
}
-->
</SCRIPT>


echo "<form action='index.php?bk=add_total' method='post' onsubmit='return check_form(this)'>";
                      while ($res_answer = mysql_fetch_assoc($query))
                      
{
echo "<tr>";                                echo "<td><input class='form' type='checkbox' id='$res_answer[id]' name='$res_question[id]._.id_answer[]' value='$res_answer[id]' ></td>";
                            echo "<td class='answer'><label for='$res_answer[id]'>${res_answer["answer"]}</label><td>";
                                                    echo "</tr>";
}
echo "</form>";

Может есть какие другие решения данной проблемы?
Заранее спасибо!

   
 
 автор: sim5   (20.11.2007 в 10:07)   письмо автору
 
   для: Front   (20.11.2007 в 09:42)
 

А причем здесь РНР переменная? Вы вызываете функцию по событию onsubmit в которую форма передается как объект: check_form(this). А в условии пишите не понятно что. Сама форма у вас кроме чекбокса ничего более не содержит, о какой длине значения может идти речь?

   
 
 автор: Front   (20.11.2007 в 10:12)   письмо автору
 
   для: sim5   (20.11.2007 в 10:07)
 

ПРошу прощения:


echo "<tr>";
                                            echo "<td colspan='2'><input size='80' type='text' class='form' name='id_text._.$res_question[id]'></td>";
                                        echo "</tr>";


Вот так!

   
 
 автор: sim5   (20.11.2007 в 10:41)   письмо автору
 
   для: Front   (20.11.2007 в 10:12)
 

Тогда в функцию передавайте это поле, можно даже непосредственно его значание, если это одно поле в форме. Можно вообще тогда обойтись без вызова функции и прописать все в событии onsubmit:

onsubmit='if (this.form.id_text._<?=$res_question[id];?>.value.length <= 1) return false'

   
 
 автор: Front   (20.11.2007 в 10:55)   письмо автору
 
   для: sim5   (20.11.2007 в 10:41)
 

Ругается - "Предполагается наличие идентификатора"
Может это быть из-за того, что форма:


                      echo "<form action='index.php?bk=add_total' method='post' onsubmit='if(this.form.id_text._.<?=$res_question;?>.value <= 1) return false'>";


Идет раньше, чем выгрузка из БД т.е.


$sql = mysql_query ( "SELECT id,question,type_id FROM question WHERE sat_id='$row_satis[id]' AND vis = 0 ORDER by pos" );
                                  while ($res_question = mysql_fetch_assoc($sql))
{
                                  
$ans = mysql_query ( "SELECT id,answer FROM answer WHERE question_id='$res_question[id]' ORDER by id" );
                                    while ($res_answer = mysql_fetch_assoc($ans))
                                    {
echo "<tr>";
                                
                                        echo "<input type='hidden' value='$res_answer[id]' name='id_answer._.$res_question[id]'>";
                                            echo "<td colspan='2'><input size='80' type='text' class='form' name='id_text._.$res_question[id]'></td>";
                                        echo "</tr>";
}
}



Следовательно, переменная $res_question в onsubmit нам неизвестна. Или я не прав?

Подскажите...

   
 
 автор: sim5   (20.11.2007 в 11:10)   письмо автору
 
   для: Front   (20.11.2007 в 10:55)
 

Если она у вас есть в базе, то все известно. Вы просмотрите еще сообщение мое - я просто забыл указать length, а вы прочитали. И еще - у вас добавляется $res_question[id], а я упустил [id]. Исправьте и проверьте вновь - все должно работать.

   
 
 автор: Front   (20.11.2007 в 11:36)   письмо автору
 
   для: sim5   (20.11.2007 в 11:10)
 


<form action="index.php?bk=add_total" method="post" onsubmit="if (this.form.id_text._<?$res_question[id];?>.value.length <= 1);
                      return false;">


Пытаюсь вывести сообщение об ошибке:


<form action="index.php?bk=add_total" method="post" onsubmit="if (this.form.id_text._<?$res_question[id];?>.value.length <= 1){alert("Вы не заполнили все поля.");
                      return false;">


Говорит, что где то синтаксическая ошибка. Не подскажите где ошибка спряталась?
И еще вопрос, эта проверка для неограниченного количества type=text, да?

При просмотре html кода в браузере:
переменная $res_question не известна:
<form action="index.php?bk=add_total" method="post" onsubmit="if (this.form.id_text._.value.length <= 1);
return false;">

   
 
 автор: sim5   (20.11.2007 в 11:41)   письмо автору
 
   для: Front   (20.11.2007 в 11:36)
 


<form action="index.php?bk=add_total" method="post" onsubmit="if (this.form.id_text._<?$res_question[id];?>.value.length <= 1) {alert("Вы не заполнили все поля."); 
 return false;}"> 


Это проверка одного поля, если у вас в таблице много полей, причем это могут быть как текстовые поля, так и чекбоксы и т.п., то лучше проверять заполнение в отдельной функции.

   
 
 автор: Front   (20.11.2007 в 11:46)   письмо автору
 
   для: sim5   (20.11.2007 в 11:41)
 

При просмотре html кода в браузере выглядит он так:

<form action="index.php?bk=add_total" method="post" onsubmit="if (this.form.id_text._.value.length <= 1);
return false;">

Получается у нас не известна переменная $res_question[id].
Может подскажите где найти пример такой функции?

   
 
 автор: sim5   (20.11.2007 в 11:48)   письмо автору
 
   для: Front   (20.11.2007 в 11:46)
 

Значит у вас это значание в базе пустое, либо вы его не верно получаете. Можете проверить:

<?
$sr 
15;
?>
onsubmit='if (this.form.id_text._<?=$sr;?>.value.length)'

   
 
 автор: Front   (20.11.2007 в 11:57)   письмо автору
 
   для: sim5   (20.11.2007 в 11:48)
 

Я согласен, это правильно и работает, просто у меня $res_question[id] в цикле выводится. Я же не могу тег <form> вместе с ним в цикле выводить.

Хочу сделать вот так, только он мне ошибку выдает (Предполагается наличие идентификатора):


<SCRIPT>
    function check_form(r)
{
    if(r.'id_text._.98'.value.length==0){alert("Вы не заполнили поле - Наименование роли.");return false;}
    return true;
}
</SCRIPT>

Где
id_text._.98 - имя генерируемого input type=text

   
 
 автор: sim5   (20.11.2007 в 12:52)   письмо автору
 
   для: Front   (20.11.2007 в 11:57)
 

Я принял на грудь 350, извиняюсть если что не так, но если вы хотите проверить заполенение формы, то вам нужно по значению числа элементов в форме проверить форму на заполенение, например, элементов обязательных для заполнения. Вы приведите полностью формируемую РНР скриптом форму со всеми ее элементами, тогда можно будет о чем-то конкретно говорить.

   
 
 автор: Front   (20.11.2007 в 13:25)   письмо автору
3.6 Кб
 
   для: sim5   (20.11.2007 в 12:52)
 

Во вложенном файле формирование формы:
$res_question[type_id] == 1 (checkbox)
$res_question[type_id] == 2 (radiobutton)
$res_question[type_id] == 3 (text)

   
 
 автор: sim5   (20.11.2007 в 15:17)   письмо автору
 
   для: Front   (20.11.2007 в 13:25)
 

Чето меня сносит после принятого, но я вроде бы отвечал уже: Если у вас в форме несколько полей, причем поля разных типов (текстовые, чекбоксы и др.), то проверять заполнение формы лучше в отдельной функции.

   
 
 автор: sim5   (20.11.2007 в 19:32)   письмо автору
 
   для: Front   (20.11.2007 в 13:25)
 

Виноват, но не очень, что не просмотрел прикрепление :0)) Все поля формы обязательны для заполнения или нет (текстовые и выбор радиокнопки)? Радиокнопки зависимы или нет?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования