[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скрипт опросов
STRELOK.IS74
В общем есть скрипт голосования с возможностью выбора одного или несколько вариантов ответа. С возможностью выбора одного варианта всё нормально, а вот с возможностью несколько - проблема. Помогите сделать так, чтобы при выборе нескольких ответов всё было нормально, а результаты записывались в файл. Скрипт прикрепил.
Kuliev
Цитата (STRELOK.IS74 @ 24.05.2010 - 15:12)
В общем есть скрипт голосования с возможностью выбора одного или несколько вариантов ответа. С возможностью выбора одного варианта всё нормально, а вот с возможностью несколько - проблема. Помогите сделать так, чтобы при выборе нескольких ответов всё было нормально, а результаты записывались в файл. Скрипт прикрепил.

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


<form method="post">
<input
type='checkbox' name='vote[1]' value='1'>
<input
type='checkbox' name='vote[2]' value='1'>
<input
type='checkbox' name='vote[3]' value='1'>
<input
type='checkbox' name='vote[4]' value='1'>
<input
type="submit" name='go'>
</form>




<?php

echo "<pre>";
print_r($_POST['vote']);
echo "</pre>";
STRELOK.IS74
Именно так всё и делал. При этом возникали разного рода ошибки.
Kuliev
Цитата (STRELOK.IS74 @ 24.05.2010 - 15:34)
Именно так всё и делал. При этом возникали разного рода ошибки.

У Вас там радио кнопки, замените их на чекбоксы!
STRELOK.IS74
if ($type=="radio") {
print "<tr><td><input type=radio name='golos' value=$i>
</td><td>
$str[0]</td></tr>";}
elseif ($type=="checkbox") {
print "<tr><td><input type=checkbox name='golos[]' value=$i>
</td><td>
$str[0]</td></tr>";}
Тип кнопок выбирается.
Kuliev
В общем все нормально с чекбоксами я разобрался у вас в админке они включаются.

А вот массив полученный от сразу несколько выбранных вариантов Вам нужно подшлифовать, т.е. индексы массива указать явные а то когда Вы нажимаете кнопку у вас получается массив golos

Array
(
[0] => 1
[1] => 2
[2] => 7
)


вот такого вида и что с чем связывать не понятно!
STRELOK.IS74
вот поэтому и прошу помощи, т.к. я уже перепробовал различные варианты и не один не работал. sad.gif Я уже просто не знаю, что ещё нужно отредактировать, чтобы всё работало как надо.
Kuliev
Цитата (STRELOK.IS74 @ 24.05.2010 - 16:01)
вот поэтому и прошу помощи, т.к. я уже перепробовал различные варианты и не один не работал. sad.gif Я уже просто не знаю, что ещё нужно отредактировать, чтобы всё работало как надо.

Ну так генери форму со смыслом!

<?php

if($type == "radio")
{
echo "<tr>\n";
echo "<td><input type='radio' name='golos' value='1'></td>\n";
echo "<td>".$str[0]."</td>\n";
echo "</tr>\n";
}

elseif($type == "checkbox")
{
echo "<tr>\n";
echo "<td><input type='checkbox' name='golos[".++$j."]' value='1'></td>\n";
echo "<td>".$str[0]."</td>\n";
echo "</tr>\n";
}
?>


чтобы ключ массива являлся номером того вопроса который выбрал пользователь.
STRELOK.IS74
Warning: Division by zero in C:\xampp\htdocs\components\vote\result.php on line 75
$ress = $r4[0]/$sum;
Kuliev
Цитата (STRELOK.IS74 @ 24.05.2010 - 21:03)
Warning: Division by zero in C:\xampp\htdocs\components\vote\result.php on line 75
$ress = $r4[0]/$sum;

В архиве такого файла НЕТ!
STRELOK.IS74
index.php. У меня просто он result.php называется smile.gif
STRELOK.IS74
Вот тут попробовал сам:
...
if ($type=="radio")
{$h[$golos] = $h[$golos]+1;}
elseif ($type=="checkbox")
{for($k=0; $k<count($f6); $k++) {
$h[$golos[$k]] = $h[$golos[$k]]+1;}}

$fk=fopen("data/result.txt", "w");

if ($type=="radio")
{for($p=0;$p<count($f6);$p=$p+1)
{ if ($p==$golos){
$f6[$p]=$h[$golos]."\n"; }
fwrite($fk,$f6[$p]);
}}
elseif ($type=="checkbox")
{for($p=0;$p<count($f6);$p=$p+1)
{ if ($p==$golos){
$f6[$p]=$h[$golos[$p]]."\n"; }
print_r($h[$golos[$p]]);
fwrite($fk,$f6[$p]);
}}
fclose($fk);
...

Но вот что получается:
При выборе нескольких ответов: 19999999991 (должно быть примерно так: 10000000001)
при выборе одного ответа: 110101010101010101010 (а должно быть примерно так: 10000000000)
Помогите sad.gif

1 - выбранный флажок, 0 - не выбранный флажок.
Быстрый ответ:

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