PDA

Просмотр полной версии : Как сделать на странице тест


pavlik007
03.08.2009, 11:47
Смысл в том, что в каждом вопросе три варианта ответа (весь тест на одной странице), ответ выбирается, тем что ставится точка в нужном маленьком кружке (не знаю как он называется). В конце показывается результат.

Сложность.
Сам алгоритм понятен, занчения должны сравниваться с правильными и где то они должны суммироваться. А как это сделать на практике я не знаю. Если кому не трудно помогите.

leoparrd
04.08.2009, 09:01
Смотря что вам надо. Или научится делать, или просто сделать. В любом случае на одном сайте есть исходник программы, котрая генерирует подобные тесты. С её помощью вы можете их понаделать кучу. Ну заодно и просмотреть код того что эта прога понаделает.
Кстати, эти кружочки с точками называются Radiobuton (радиокнопка). Они групируютя в боксах что позволяет автоматически создать зависимость переключения...
А вообще, чтобы ответить на ваш вопрос, неплохо бы знать о вашем уровне знаний по программированию.
Если вам нужно всё что я понаписал, напишите мне в личку. Прогу я вам оттранслирую, если вы не умеете этого делать.

Kalyann
01.09.2009, 18:19
Вообще, это делается на PHP...

Sherp
02.09.2009, 00:34
Вообще, это делается на PHP...
Да и javascript так же подойдет здесь, думаю каких-либо значительных различий нет.

valdez2
20.11.2009, 22:45
Либо сервис найти, где клепают подобные тесты.

uhu
23.11.2009, 09:19
Если будешь использовать JavaScript,
используй
function getRadioGroupValue(radioGroupObj)
{
for (var i=0; i < radioGroupObj.length; i++)
if (radioGroupObj[i].checked) return radioGroupObj[i].value;

return null;
}

Bodink
19.12.2010, 13:25
Вот Джаваскрипт пользуйся все рабочее я делал для племянника. Это 8 класс физика просто замени вопросы и ответы
<html>
<head>
<title>Тест с физики за 8 класс</title>
<script language="javascript" type="text/javascript">
var cnt=-1;
var points=0;
var itemSelected=1;
aArray1=['<font size=5>35 м/с</font>','<font size=5>0,0003 м/с</font>','<font size=5>5 км/час</font>'];
aArray2=['<font size=5>15 м/с</font>','<font size=5>10,0002 м/с</font>','<font size=5>10 км/час</font>'];
aArray3=['<font size=5>25 м/с</font>','<font size=5>0,0002 м/с</font>','<font size=5>15 км/час</font>'];
aArray4=['<font size=5>20 м/с</font>','<font size=5>10,0003 м/с</font>','<font size=5>20 км/час</font>'];
aArray5=['<font size=5>10 м/с, 15 м/с, 20м/с </font>','<font size=5>1,0003 м/с</font>','<font size=5>25 км/час</font>'];
aArray6=['<font size=5>10 м/с, 12,5 м/с, 15 м/с</font>','<font size=5>1,0002 м/с</font>','<font size=5>30 км/час</font>'];


qArray=['Атомобиль проехал за первую секунду 10м, за вторую 15м, а за третью 20м высчитать среднюю скорость за каждую секунду.',
'Улитка по стволу дерева ползет 50см за 1 час, а потом еще 70см за 0,5час. Какая была средняя скорость?(округлено до червертого знака)','Велосепедист проехал полпути со скоростью 20км.час, а все остальное прошел пешком. Какая скорость ходьбы?, если ехал он 1/5 всего времени.'];


rArray1=['0','0','4'];
rArray2=['0','0','0'];
rArray3=['0','4','0'];
rArray4=['0','0','0'];
rArray5=['4','0','0'];
rArray6=['0','0','0'];

function goNext(e){
var pts=(eval('rArray'+itemSelected+'['+(cnt)+']'));
if (pts) points=points+Number(pts);
if ((cnt+1)==qArray.length) {
checkResults();
return;
}
if((cnt+1)==(qArray.length-1)){
var bt=document.getElementById("btn");
bt.value='Показать балл';
}
cnt++;
var cnt1=document.getElementById("counter");
var sp0=document.getElementById("question");
var sp1=document.getElementById("answer1");
var sp2=document.getElementById("answer2");
var sp3=document.getElementById("answer3");
var sp4=document.getElementById("answer4");
var sp5=document.getElementById("answer5");
var sp6=document.getElementById("answer6");
sp0.innerHTML=qArray[cnt];
sp1.innerHTML=aArray1[cnt];
sp2.innerHTML=aArray2[cnt];
sp3.innerHTML=aArray3[cnt];
sp4.innerHTML=aArray4[cnt];
sp5.innerHTML=aArray5[cnt];
sp6.innerHTML=aArray6[cnt];
cnt1.innerHTML=cnt+1;

}

function checkResults(){
alert('Результат в баллах '+points);
}
</script>
</head>
<body BGCOLOR="#836FFF" onLoad="javascript:goNext(event);">

<a href="index.html">Вернутся на главную<a>
<br>
<a href="Choose test.html">Вернутся для выбора теста<a>

<center><SPAN id="counter"></SPAN>. <SPAN id="question"></SPAN></center><br /><br />
<input type="radio" name="opt" id="opt1" onClick="javascript:itemSelected=1;"><SPAN id="answer1"></SPAN><br/>
<input type="radio" name="opt" id="opt2" onClick="javascript:itemSelected=2;"><SPAN id="answer2"></SPAN><br/>
<input type="radio" name="opt" id="opt3" onClick="javascript:itemSelected=3;"><SPAN id="answer3"></SPAN><br/>
<input type="radio" name="opt" id="opt4" onClick="javascript:itemSelected=4;"><SPAN id="answer4"></SPAN><br/>
<input type="radio" name="opt" id="opt5" onClick="javascript:itemSelected=5;"><SPAN id="answer5"></SPAN><br/>
<input type="radio" name="opt" id="opt6" onClick="javascript:itemSelected=6;"><SPAN id="answer6"></SPAN><br/>

<br />
<div align="center"><input id="btn" type="button" onClick="javascript:goNext()" value="Следующий вопрос" /></div>
<FORM ACTION="receive.html" METHOD=POST>
<br><br><br><TEXTAREA NAME="answer" WRAP="virtual" COLS="75" ROWS="8">Поле для решения задачи...</TEXTAREA><br><br><br>
<br><center> <a href="javascript:window.location.reload()">Пройти Тест повторно</a></center><br>
<center> <b>
<font size="4">
</FORM>
<br><br><br>
<a href="index.html">Вернутся на главную</a>
</body>

</html>

surlan1993
06.06.2013, 16:43
Тебе тут необходим JavaScript...с помощью php можно, но по моему муторно, зачем ради этого страницу перезагружать...если что пиши в личку

Muchos
08.07.2013, 20:16
Само по себе сравнение ответов с правильными можно сделать только с помощью серверного программирования. Можно ответы конечно хранить и в джаваскрипте, но знающий человек в этом случае просто скачает скрипт и посмотрит правильные ответы. Хотя для простого теста, когда всем по большому счету наплевать, возможно подойдет и такой вариант.