Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [PHP] PHP Тест


Автор: Sice 14.12.2008, 01:46
Доброй ночи!
Большая просьба, кто писал php тесты и у кого остались исходники дайте пожалуйста.
Срочно нужно для сдачи зачета.

Тест примерно должен быть таким (как пример):

20 вопросов. хранятся они в бд. выводится каждый вопрос отдельно, кнопка далее переводит на следующий вопрос и так 20 вопросов, если пользователь ответил не правильно выводится зеленый текст, если не правильно, то красный, по окончанию теста - результат.

Ребята, у кого есть что-то подобное или желание написать огромная просьба поделиться. Заранее спасибо большое.




Автор: skyboy 14.12.2008, 12:02
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Автор: Sice 15.12.2008, 13:39
Никто не может помочь?

Автор: bars80080 15.12.2008, 18:32
да долго, муторно писать, при том что задача ни капельки не интересная. для написания достаточно примитивнейших знаний. форма -> обработка на сервере с выборкой из БД, что может быть банальней?

единственно, что могу посоветовать, поищи по разделам пхп, там тестовых тем хватает, обсуждённых не одним поколением кодеров

Автор: Sice 15.12.2008, 21:27
Цитата(bars80080 @ 15.12.2008,  18:32)
да долго, муторно писать, при том что задача ни капельки не интересная. для написания достаточно примитивнейших знаний. форма -> обработка на сервере с выборкой из БД, что может быть банальней?

единственно, что могу посоветовать, поищи по разделам пхп, там тестовых тем хватает, обсуждённых не одним поколением кодеров

Я с вами согласен, что ничего сложного в принципе, но как мне сделать так, чтобы страница не перезагружалась полностью при переходе на следующий вопрос ?? (я ajax совсем не знаю) и как сделать чтобы бы над каждым вопросом был результат - правильно\неправильно.
Вот что меня пугает..

Автор: bars80080 15.12.2008, 21:40
а что, аякс принципиально нужен? без него достаточно формой обращаться на один и тот же скрипт, просто меняя в скрытом поле порядок вопроса: <input type="hidden" name="stage" value="4" />
в скрипте достаточно будет прописать: 
Код

if($_POST['stage'] == 4) {

    // здесь обработка, запрос в БД и выдача ответа и следующего вопроса

}


если нужен аякс, то сам он вот: 

по нажатию кнопки "отправить ответ" запускается функция ajax_s
Код

function ajax_s() {
    // здесь ты производишь считывание данных. допустим какие чекбоксы отмечены
    // преобразуешь в какие-нибудь переменные, допустим x и y
    // где y - номер вопроса

    var dpar = '<? echo time(); ?>';
    if(window.XMLHttpRequest) {
        try { req = new XMLHttpRequest(); } 
        catch (e){}} 
    else if(window.ActiveXObject) {
        try { req = new ActiveXObject('Msxml2.XMLHTTP'); } 
        catch (e){ req = new ActiveXObject('Microsoft.XMLHTTP'); }}
    req.onreadystatechange = function() { 
        if(req.readyState == 4) ajax_o(req.responseText); }     
    req.open("GET", 'http://server.ru/ajax/special.php?par1=' + x + '&stage=' + y + '&dpar=' + dpar, true);
    req.send(''); 
}
function ajax_o(x) {
    var zelj = document.getElementById('ziel');
    zelj.innerHTML = decodeURIComponent(x);
}


дальше у тебя на сервер идёт запрос. в скрипте та же самая история:
Код

if($_GET['stage'] == 4) {

    // здесь обработка, запрос в БД и выдача ответа и следующего вопроса

}

в ответ выдаёшь кусок текста, который должен быть вставлен дальше. в функции ajax_o разбираешь пришедший код как надо и вставляешь куда надо. в данном случае написано вставить пришедший кусок в блок с id="ziel"
decodeURIComponent(x); - нужна, если на сервере отдаёшь данные через echo rawutlencode($otvet); - что нужно использовать, если передаёшь русский текст

Автор: Sice 15.12.2008, 21:43
нет, я думал без него никак, большое спасибо, буду разбираться, а как сделать над каждым вопросом правильный\неправильный ответ?

Автор: bars80080 15.12.2008, 21:53
как выведешь, так и получится

Код

echo '<p>ответ<p>';
echo '<p>следующий вопрос</p>';

Автор: Sice 15.12.2008, 22:03
Цитата(bars80080 @ 15.12.2008,  21:53)
как выведешь, так и получится

Код

echo '<p>ответ<p>';
echo '<p>следующий вопрос</p>';

ну имеется ввиду: например: 

вопросы: 1 2 3 4 5 6 7 8 9 10 11 12 13 
                и под ними выводятся галочки (если правильно) и крестики (если нет)

вот это как осуществить?)

Автор: bars80080 16.12.2008, 02:00
ну, как-как? выводишь таблицу (2 строчки, 20 столбиков), после каждого вопроса отстраиваешь её заново. в верхней строке циферки, вв нижней рисуночки. проверил при обработке ответа, если правильно, заполняешь массив (самое простое - массив в сессии) 1 и 0. где 1 - правильный ответ, 0 - неправильный. и рисунки эти подставляешь по этому массиву.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)