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

HTML+CSS+JavaScript

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

 

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

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

тема: Помогите с проверкой "заполненности" анкеты
 
 автор: DDK   (13.01.2006 в 15:47)   письмо автору
 
 

Пишу сейчас анкету на PHP, возникла задача - нужно проверить на JS, выбран ли для каждого вопроса (n-е кол-во, берутся из базы) хотя бы один вариант ответа (минимум 2, максимум n). Все радио-кнопки находятся в одной форме с именем theForm. Имена радиокнопок - массив, ключом которого служит ID текущего вопроса, а значения - ID ответов. Пример:

<form action="/anketa.php" method="post" name="theform">
<table align="center" cellspacing="2" cellpadding="0" border="0" width="500">
<tr>
    <td colspan="3" class="question">Вопрос</td>
</tr><tr>
    <td align="right" width="125"><input class="radiobutton" type="Radio" name="questid[1]" value="1"></td>
    <td class="answer">Ответ 1</td>
    <td width="125">&nbsp;</td>
</tr><tr>
    <td align="right" width="125"><input class="radiobutton" type="Radio" name="questid[1]" value="2"></td>
    <td class="answer">Ответ 2</td>
    <td width="125">&nbsp;</td>
</tr></table><br>
...
<table align="center" cellspacing="2" cellpadding="0" border="0" width="500">
<tr>
    <td colspan="3" class="question">Вопрос 2</td>
</tr><tr>
    <td align="right" width="125"><input class="radiobutton" type="Radio" name="questid[2]" value="3"></td>
    <td class="answer">Ответ 1</td>
    <td width="125">&nbsp;</td>
</tr><tr>
    <td align="right" width="125"><input class="radiobutton" type="Radio" name="questid[2]" value="4"></td>
    <td class="answer">Ответ 2</td>
    <td width="125">&nbsp;</td>
</tr><tr>
    <td align="right" width="125"><input class="radiobutton" type="Radio" name="questid[2]" value="5"></td>
    <td class="answer">Ответ 3</td>
    <td width="125">&nbsp;</td>
</tr></table><br>
<div align="center"><input type="Button" onclick="checkall()" value="Отправить"></div>
</form>


Выручайте :)

   
 
 автор: 12345   (13.01.2006 в 17:33)   письмо автору
 
   для: DDK   (13.01.2006 в 15:47)
 

<script>checkall=function(){
    j=0;    for(i=0;i<theform.elements.length;i++)if(theform.elements(i).checked)j++;
    alert(j);
}
</script>

   
 
 автор: DDK   (14.01.2006 в 13:59)   письмо автору
 
   для: 12345   (13.01.2006 в 17:33)
 

На будущее: Я решил проблему весьма просто и хитро, PHP-скриптом раздал каждому радио-батону ID в духе a1,a2...an, а при генеоации страницы передал яваскрипту общее кол-во вопросов и радио-кнопок. Проверяю, сколько всего радио-кнопок отмечено и если меньше, чем общее кол-во вопросов, то выдаю алерт. Вот такой скрипт:

<form action="/anketa.php" method="post" name="theform">
<table align="center" cellspacing="2" cellpadding="2" border="0" width="500">
<tr>
<td colspan="3" class="question" style="padding-bottom: 10px;"><strong>Вопрос 1</strong></td>
</tr><tr>
<td align="right" width="125"><input class="radiobutton" id="a0" type="Radio" name="questid[1]" value="1"></td>
<td class="maintext"><label for="a0">ответ 1</label></td>
<td width="125">&nbsp;</td>
</tr><tr>
<td align="right" width="125"><input class="radiobutton" id="a1" type="Radio" name="questid[1]" value="2"></td>
<td class="maintext"><label for="a1">ответ 2</label></td>
<td width="125">&nbsp;</td>
</tr><tr>
<td align="right" width="125">
<input class="radiobutton" onclick="document.getElementById('b2').focus();" id="a2" type="Radio" name="questid[1]" value="other"></td>
<td class="maintext"><label for="a2">Другое (ответ 3)</label></td>
<td width="125">&nbsp;</td>
</tr><tr>
<td align="right" width="125">&nbsp;</td>
<td class="maintext">
<input type="Text" name="otherans[1]" id="b2" maxlength="150" size="30"></td>
<td width="125">&nbsp;</td>
</tr></table><br><table align="center" cellspacing="2" cellpadding="2" border="0" width="500">
<tr>
<td colspan="3" class="question" style="padding-bottom: 10px;"><strong>2. Статьи какого плана вы хотели бы видеть в большем количестве в наступившем году ?</strong></td>
</tr><tr>
<td align="right" width="125"><input class="radiobutton" id="a3" type="Radio" name="questid[2]" value="3"></td>
<td class="maintext"><label for="a3">ответ 1</label></td>
<td width="125">&nbsp;</td>
</tr><tr>
<td align="right" width="125"><input class="radiobutton" id="a4" type="Radio" name="questid[2]" value="4"></td>
<td class="maintext"><label for="a4">ответ 2</label></td>
<td width="125">&nbsp;</td>
</tr><tr>
<td align="right" width="125">
<input class="radiobutton" onclick="document.getElementById('b5').focus();" id="a5" type="Radio" name="questid[2]" value="other"></td>
<td class="maintext"><label for="a5">Другое (ответ 3)</label></td>
<td width="125">&nbsp;</td>
</tr><tr>
<td align="right" width="125">&nbsp;</td>
<td class="maintext">
<input type="Text" name="otherans[2]" id="b5" maxlength="150" size="30"></td>
<td width="125">&nbsp;</td>
</tr></table><br><div align="center"><input type="Button" onclick="checkall()" value="Отправить анкету"></div>
</form>

<script language='JavaScript'>
var totalrb = 6; // кол-во радиокнопок в анкете
var totalqs = 2; // уол-во вопросов в анкете
var chcnt = 0;
function checkall() {

for(i=0; i < totalrb; i++) {
obj = document.getElementById('a'+i);
if(obj.value==true) {
chcnt++;
}}
if(chcnt < totalqs) {
alert('Заполните пожалуйста всю анкету !');
} else {
document.theform.submit();
}}
</script>

Вот так всё оказалось просто :)

   
Rambler's Top100
вверх

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