View Single Post
ישן 07-11-08, 21:24   # 1
MAORBARI
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Sep 2008
הודעות: 484

MAORBARI לא מחובר  

שאלה| שינוי המערכת

יש לי את הקוד הבא:
PHP קוד:
<?

// iQuiz v1.0 - a simple quiz script
// You may change any of this script but please do not remove the link at the bottom of the page
$xmlFile "questions.xml";


// XML Section
$data implode(""file($xmlFile));
$parser xml_parser_create();
xml_parser_set_option($parserXML_OPTION_CASE_FOLDING0);
xml_parser_set_option($parserXML_OPTION_SKIP_WHITE1);
xml_parse_into_struct($parser$data$values$tags);
xml_parser_free($parser);

$questionNo 0;
foreach (
$values as $key=>$val) {
    
// save value to "questions" array if this is a TEXT tag
    
if ($val[tag] == "TEXT") {
        
$questions[$questionNo]['text'] = $val[value];
    }

    
// save value to "questions" array if this is a CHOICES tag
    
if ($val[tag] == "CHOICES") {
        
$questions[$questionNo]['choices'] = $val[value];
    }

    
// save value to "questions" array if this is an ANSWER tag
    
if ($val[tag] == "ANSWER") {
        
$questions[$questionNo]['answer'] = $val[value];

        
// increment question counter variable
        
$questionNo++;
    }
}

import_request_variables("p""post_");

include(
$headerFile);

if (!isset(
$post_answers)) {
    echo 
"<b>" $questions[0]['text'] . "</b>\n";
    echo 
"<form action=\"$PHP_SELF\" method=\"post\">\n";

    
// split choices into "choices" array
    
$choices explode(", "$questions[0]['choices']);

    
// print text field if there are no choices
    
if (count($choices) == 1) {
        echo 
"<input type=\"text\" name=\"answers[0]\" size=10>\n";
    }

    
// print radio fields if there are multiple choices
    
else {
        
// print a radio button for each choice
        
for ($i 0$i count($choices); $i++) {
            echo 
"<input type=\"radio\" name=\"answers[0]\" value=\"" $choices[$i] . "\"> " $choices[$i] . "<br>\n";
        }
    }

    echo 
"<input type=\"submit\" value=\"Next Question\">\n";
    echo 
"</form>\n";
}


//
// PRINT NEXT QUESTION
//

elseif (count($questions) > count($post_answers)) {
    
// get number of next question
    
$nextQuestion count($post_answers);

    
// print question
    
echo "<b>" $questions[$nextQuestion]['text'] . "</b>\n";
    echo 
"<form action=\"$PHP_SELF\" method=\"post\">\n";

    
// print answers to previous questions as hidden form fields
    
for ($i 0$i count($post_answers); $i++) {
        echo 
"<input type=\"hidden\" name=\"answers[$i]\" value=\"$post_answers[$i]\">\n";
    }

    
// split choices into "choices" array
    
$choices explode(", "$questions[$nextQuestion]['choices']);

    
// print text field if there are no choices
    
if (count($choices) == 1) {
        echo 
"<input type=\"text\" name=\"answers[$nextQuestion]\" size=10>\n";
    }

    
// print radio fields if there are multiple choices
    
else {
        
// print a radio button for each choice
        
for ($i 0$i count($choices); $i++) {
            echo 
"<input type=\"radio\" name=\"answers[$nextQuestion]\" value=\"" $choices[$i] . "\">" $choices[$i] . "<br>\n";
        }
    }

    
// print appropriate button label
    
if (count($questions) == count($post_answers) + 1) {
        echo 
"<input type=\"submit\" value=\"Calculate Score\">\n";
    }
    else {
        echo 
"<input type=\"submit\" value=\"Next Question\">\n";
    }

    echo 
"</form>\n";
}


//
// CALCULATE AND PRINT SCORE
//

else {
    
// get number of questions
    
$noQuestions count($questions);

    
// get number of correct answers
    
for ($i 0$i $noQuestions$i++) {
        
// increment "noCorrectAnswers" variable if user has correct answer
        
if ($questions[$i]['answer'] == $post_answers[$i]) {
            
$noCorrectAnswers++;
        }
    }

    
// calculate score
    
$score = ($noCorrectAnswers $noQuestions) * 100;

    
// round score to nearest whole precentage point
    
$score round($score);

    
// print score
    
echo "<h2>$score%</h2>\n";

    if (
$noCorrectAnswers == 0) {
        echo 
"<p>You answered no questions correctly.  <a href=" $PHP_SELF ">Try again.</a></p>";
    }

    if (
$noCorrectAnswers == 1) {
        echo 
"<p>You answered 1 out of $noQuestions questions correctly.  <a href=" $PHP_SELF ">Try again.</a></p>";
    }

    if (
$noCorrectAnswers && $noCorrectAnswers $noQuestions) {
        echo 
"<p>You answered $noCorrectAnswers out of $noQuestions questions correctly.  <a href=" $PHP_SELF ">Try again.</a></p>";
    }

    if (
$noCorrectAnswers == $noQuestions) {
        echo 
"<p>ענית על הכל נכון!</p>";
    }
}


//
// INCLUDE FOOTER FILE
//

include($footerFile);

?>
הוא לוקח שאלות ותשובות מקובץ XML ומחבר מהם מבחן

השאלה שלי היא איך אני עושה שבמקום שישאל שאלה ויעשה הבא הבא הבא ויחשב אחוזים
אני עושה אם עניתי על אוה שאלה נכון או לא נכון?

תודה
  Reply With Quote