Привет, братья!
Есть нужда обратиться к вам за советом, к специалистам по PHP...
Сейчас разрабатываю сайт, а там есть такая проблема... Надо, чтоб пользователь мог выбирать из предлагаемого списка несколько вопросов (всего в списке их около 200), и текст вопросов пересылался на указанный имейл...
Как решить эту проблему? Пытался организовать это в виде форм с чекбоксами, но обработка таких форм на PHP представляется мне сущим геморроем...
Можете предложить какой нибудь алгоритм решения такой задачи...?
Она проста, но я просто в тупике... зае...ся...
Буду признателен по гроб жизни...
Strannik.
1. Strannik - 14 Сентября, 2004 - 22:32:35 - перейти к сообщению
2. TvoyWeb - 15 Сентября, 2004 - 09:40:15 - перейти к сообщению
Strannik
А в чем геморрой? Именно чекбоксами и надо это делать....
Цитата:
ытался организовать это в виде форм с чекбоксами, но обработка таких форм на PHP представляется мне сущим геморроем...
А в чем геморрой? Именно чекбоксами и надо это делать....
3. Леголегс - 15 Сентября, 2004 - 10:25:25 - перейти к сообщению
Strannik
Я не спец по PHP, но как программист скажу тебе, что не вижу здесь более элегантного решения. Просто тупо нумеруй вопросы в базе и, соответственно, чекбоксы. В полученом от юзера вопросе проходи в цикле все чекбоксы.
Я не спец по PHP, но как программист скажу тебе, что не вижу здесь более элегантного решения. Просто тупо нумеруй вопросы в базе и, соответственно, чекбоксы. В полученом от юзера вопросе проходи в цикле все чекбоксы.
4. TvoyWeb - 15 Сентября, 2004 - 16:47:32 - перейти к сообщению
Леголегс
Да можно даже и этого не делать.....
Генерить сами чекбоксы с вопросами на странице тоже при помощи PHP.
Цитата:
Просто тупо нумеруй вопросы в базе
Да можно даже и этого не делать.....
Генерить сами чекбоксы с вопросами на странице тоже при помощи PHP.
5. Strannik - 15 Сентября, 2004 - 20:05:00 - перейти к сообщению
Привет всем! Все верно... Но как мы все знаем чекбокс возвращает только два значения: true и false... Ну получу, допустим я массив значений типа [да, да... нет, да,...нет, нет]... А дальше как их обрабатывать? Мне ж надо, чтоб функция имела значение ="текст вопроса" и обрабатывалась mail()... Что-то меня клинит на этом...\n\n(Добавление)
TvoyWeb
Все верно... Но как мы все знаем чекбокс возвращает только два значения: true и false... Ну получу, допустим я массив значений типа [да, да... нет, да,...нет, нет]... А дальше как их обрабатывать? Мне ж надо, чтоб функция имела значение ="текст вопроса" и обрабатывалась mail()... Что-то меня клинит на этом...
TvoyWeb
Все верно... Но как мы все знаем чекбокс возвращает только два значения: true и false... Ну получу, допустим я массив значений типа [да, да... нет, да,...нет, нет]... А дальше как их обрабатывать? Мне ж надо, чтоб функция имела значение ="текст вопроса" и обрабатывалась mail()... Что-то меня клинит на этом...
6. TvoyWeb - 15 Сентября, 2004 - 20:24:06 - перейти к сообщению
Strannik
Спать уже собрался Днем приведу пример кода.
Спать уже собрался Днем приведу пример кода.
7. TvoyWeb - 16 Сентября, 2004 - 07:11:09 - перейти к сообщению
Strannik
Ну вот накалякал на скорую руку. Тебе нужно будет создать два файла.
Файл с базой вопросов и сам скрипт.
Файл базы base.txt
Писать вопросы в базе надо по одному на одной строке.
А вот файл скрипта vopros.php
В комментариях я все написал. Не стал писать функцию отправки на мыло. Надеюсь это сделаешь сам. Будут вопросы пиши.
Ну вот накалякал на скорую руку. Тебе нужно будет создать два файла.
Файл с базой вопросов и сам скрипт.
Файл базы base.txt
CODE:
Вопрос первый
Вопрос второй
Вопрос третий
Вопрос четвертый
Вопрос пятый
Вопрос шестой
Вопрос седьмой
Вопрос восьмой
Вопрос девятый
Вопрос десятый
Вопрос второй
Вопрос третий
Вопрос четвертый
Вопрос пятый
Вопрос шестой
Вопрос седьмой
Вопрос восьмой
Вопрос девятый
Вопрос десятый
Писать вопросы в базе надо по одному на одной строке.
А вот файл скрипта vopros.php
PHP:
<html>
<head>
<title>Пример формы с чекбоксами</title>
</head>
<body>
<?php
$data_file='base.txt';#Файл базы вопросов
$data = file($data_file);#Заносим базу в массив
if(isset($HTTP_POST_VARS['DoGo']))#Если нажали кнопку "Отправить"
{
$print_result = '';
$box=$HTTP_POST_VARS['box'];#Вытаскиваем из глобального массива $_POST только наши вопросы в массив $box
foreach($box as $value)#Проходимся по массиву $box для печати результатов на страницу
{
if(isset($value)){$print_result .= $value.'<BR>';}
}
#Выводим результаты на страницу
echo<<<RESULT
<H4>Вы выбрали следующие вопросы:</H4>
$print_result
<a href="vopros.php">Вернуться к форме</a>
RESULT;
}else{#Если страницу загрузили без каких либо параметров
$checkbox ='';
if(count($data)!=0)#Если база не пуста
{
for($i=0;$i<count($data);$i++)#Проходимся по базе и подготавливаем чекбоксы к печати
{
$checkbox .='<input name="box['.$i.']" type="checkbox" value="'.$data[$i].'">'.$data[$i].'<BR>';
}
}#Выводим на страницу форму с чекбоксами и вопросами
echo<<<FORM
<form action="vopros.php" method="post" name="Vopros">
$checkbox
<input name="DoGo" type="submit" value="Отправить"></form>
FORM;
}
?>
</body>
</html>
<head>
<title>Пример формы с чекбоксами</title>
</head>
<body>
<?php
$data_file='base.txt';#Файл базы вопросов
$data = file($data_file);#Заносим базу в массив
if(isset($HTTP_POST_VARS['DoGo']))#Если нажали кнопку "Отправить"
{
$print_result = '';
$box=$HTTP_POST_VARS['box'];#Вытаскиваем из глобального массива $_POST только наши вопросы в массив $box
foreach($box as $value)#Проходимся по массиву $box для печати результатов на страницу
{
if(isset($value)){$print_result .= $value.'<BR>';}
}
#Выводим результаты на страницу
echo<<<RESULT
<H4>Вы выбрали следующие вопросы:</H4>
$print_result
<a href="vopros.php">Вернуться к форме</a>
RESULT;
}else{#Если страницу загрузили без каких либо параметров
$checkbox ='';
if(count($data)!=0)#Если база не пуста
{
for($i=0;$i<count($data);$i++)#Проходимся по базе и подготавливаем чекбоксы к печати
{
$checkbox .='<input name="box['.$i.']" type="checkbox" value="'.$data[$i].'">'.$data[$i].'<BR>';
}
}#Выводим на страницу форму с чекбоксами и вопросами
echo<<<FORM
<form action="vopros.php" method="post" name="Vopros">
$checkbox
<input name="DoGo" type="submit" value="Отправить"></form>
FORM;
}
?>
</body>
</html>
В комментариях я все написал. Не стал писать функцию отправки на мыло. Надеюсь это сделаешь сам. Будут вопросы пиши.