|
|
|
| Добрый день!
Подскажите пож-та как сделать чтобы генерируемая 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>";
|
Может есть какие другие решения данной проблемы?
Заранее спасибо! | |
|
|
|
|
|
|
|
для: Front
(20.11.2007 в 09:42)
| | А причем здесь РНР переменная? Вы вызываете функцию по событию onsubmit в которую форма передается как объект: check_form(this). А в условии пишите не понятно что. Сама форма у вас кроме чекбокса ничего более не содержит, о какой длине значения может идти речь? | |
|
|
|
|
|
|
|
для: 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>";
|
Вот так! | |
|
|
|
|
|
|
|
для: Front
(20.11.2007 в 10:12)
| | Тогда в функцию передавайте это поле, можно даже непосредственно его значание, если это одно поле в форме. Можно вообще тогда обойтись без вызова функции и прописать все в событии onsubmit:
onsubmit='if (this.form.id_text._<?=$res_question[id];?>.value.length <= 1) return false'
|
| |
|
|
|
|
|
|
|
для: 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 нам неизвестна. Или я не прав?
Подскажите... | |
|
|
|
|
|
|
|
для: Front
(20.11.2007 в 10:55)
| | Если она у вас есть в базе, то все известно. Вы просмотрите еще сообщение мое - я просто забыл указать length, а вы прочитали. И еще - у вас добавляется $res_question[id], а я упустил [id]. Исправьте и проверьте вновь - все должно работать. | |
|
|
|
|
|
|
|
для: 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;"> | |
|
|
|
|
|
|
|
для: 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;}">
|
Это проверка одного поля, если у вас в таблице много полей, причем это могут быть как текстовые поля, так и чекбоксы и т.п., то лучше проверять заполнение в отдельной функции. | |
|
|
|
|
|
|
|
для: 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].
Может подскажите где найти пример такой функции? | |
|
|
|
|
|
|
|
для: Front
(20.11.2007 в 11:46)
| | Значит у вас это значание в базе пустое, либо вы его не верно получаете. Можете проверить:
<?
$sr = 15;
?>
onsubmit='if (this.form.id_text._<?=$sr;?>.value.length)'
|
| |
|
|
|
|
|
|
|
для: 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 | |
|
|
|
|
|
|
|
для: Front
(20.11.2007 в 11:57)
| | Я принял на грудь 350, извиняюсть если что не так, но если вы хотите проверить заполенение формы, то вам нужно по значению числа элементов в форме проверить форму на заполенение, например, элементов обязательных для заполнения. Вы приведите полностью формируемую РНР скриптом форму со всеми ее элементами, тогда можно будет о чем-то конкретно говорить. | |
|
|
|
|
 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) | |
|
|
|
|
|
|
|
для: Front
(20.11.2007 в 13:25)
| | Чето меня сносит после принятого, но я вроде бы отвечал уже: Если у вас в форме несколько полей, причем поля разных типов (текстовые, чекбоксы и др.), то проверять заполнение формы лучше в отдельной функции. | |
|
|
|
|
|
|
|
для: Front
(20.11.2007 в 13:25)
| | Виноват, но не очень, что не просмотрел прикрепление :0)) Все поля формы обязательны для заполнения или нет (текстовые и выбор радиокнопки)? Радиокнопки зависимы или нет? | |
|
|
|