Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Тесты, парсинг xml, Написать тесты из xml файла 
:(
    Опции темы
Dewi1
Дата 19.5.2014, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 19.5.2014

Репутация: нет
Всего: нет



Где-то я запутался, не могу доделать программу. Это обычный тест и его нужно считать с xml документа, а затем отправить данные на другую страницу, где выводится результат.

1)Главная страница и собственно код парсинга.

Код

<?php
    header('Powered: test');
    header('Content-Type: text/html; charset=utf-8');
?>
<html>
<body>
<font size='5' face='Arial_Black'>
    <?php
    echo "<form  method='post' action='results.php'>";
    $questions = simplexml_load_file('S:\home\test\www\questions.xml');
    foreach($questions as $id => $question)
    {
        echo $question->title."<br>";
        foreach($question->answers->answer as $answerId => $k)
        {
            echo "<input type='radio' name='question_$id' value='$answerId'>";
            echo $k."<br>";
        }
    }
    echo "<br><br>"."<input type='submit' value='Отправить'></form>";
    ?>
</font>
</body>
</html>


P.S. Преподователь подсказал, что нужно использовать массив, вместо "foreach".

2)Страница куда отправляются данные, в данном случае результаты теста.

Код

<?php
header('Powered: test');
header('Content-Type: text/html; charset=utf-8');
?>
<html>
<body>
<?php
 
echo "<pre>";
echo "<font size=5 face=Arial_Black>";
 
if(1==1){
echo "Ваш результат:";
echo "<br><br>    ";
$x==3;
printf("Правильных ответов: %d", $x);
echo "<br>    ";
printf("Не правильных ответов: %d", $y);
}
 
echo "</pre>";
echo "</font>";
 
?>
</body>
</html>


3)Сам xml документ

Код

<?xml version="1.0" encoding="UTF-8"?>
<questions>
    <question id="1">
        <title>Какой формы планета Земля?</title>
        <answers>
            <answer>Квадратная</answer>
            <answer correct="true">Круглая</answer>
            <answer>Треугольная</answer>
        </answers>
    </question>
    <question id="2">
        <title>Какой самый маленький континент?</title>
        <answers>
            <answer correct="true">Австралия</answer>
            <answer>Антарктида</answer>
            <answer>Африка</answer>
        </answers>
    </question>
    <question id="3">
        <title>Сколько ног у сороконожки?</title>
        <answers>
            <answer>Сорок</answer>
            <answer correct="true">До семиста пятидесяти</answer>
            <answer>Двадцать</answer>
        </answers>
    </question>
    <question id="4">
        <title>Как звали русского богатыря Муромца?</title>
        <answers>
            <answer>Алёша</answer>
            <answer>Добрыня</answer>
            <answer correct="true">Илья</answer>
        </answers>
    </question>
</questions>



Это сообщение отредактировал(а) Aliance - 21.5.2014, 10:24
PM MAIL   Вверх
s1lver
Дата 19.5.2014, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 14.12.2007
Где: Россия

Репутация: нет
Всего: нет



Пологаю, первая часть вашего задания должна выглядить как-то так

Код

header('Content-Type: text/html; charset=utf-8');
$xml = simplexml_load_file("test.xml");
?>
<form action="answer.php" method="post">
<?
foreach($xml->question as $xml_data){
    echo $xml_data->title."<br>";
    for ($i = 0; $i <= count($xml_data->answers->answer); $i++)
    {
        echo "<label><input type=\"radio\" name=\"".$xml_data['id']."\" value=\"".$xml_data->answers->answer[$i]['correct']."\">".$xml_data->answers->answer[$i]."</label><br>";
    }
    echo "<br>";
}
?>
    <input type="submit" value="Ответить">
</form>


answer.php
Код

header('Content-Type: text/html; charset=utf-8');
if($_POST['1']!="true"){
    echo "Ответ не верен.<br>";
}else echo "Ответ верен.<br>";
if($_POST['2']!="true"){
    echo "Ответ не верен.<br>";
}else echo "Ответ верен.<br>";
if($_POST['3']!="true"){
    echo "Ответ не верен.<br>";
}else echo "Ответ верен.<br>";
if($_POST['4']!="true"){
    echo "Ответ не верен.<br>";
}else echo "Ответ верен.<br>";


Это сообщение отредактировал(а) s1lver - 19.5.2014, 19:10


--------------------
Я собрался жить вечно - пока все идет нормально!
PM MAIL ICQ   Вверх
Dewi1
Дата 19.5.2014, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 19.5.2014

Репутация: нет
Всего: нет



Цитата

Пологаю, первая часть вашего задания должна выглядить как-то так


Спасибо большое =)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0557 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.