PHP mot quiz en utilisant les formulaires

  • Inito
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Déc 30, 2003
  • Messages: 223
  • Status: Offline

Message Janvier 17th, 2004, 4:12 am

Salut,

J'ai essayé à quelque chose de script en PHP,
sans les tableaux et les autres trucs de ce que c'est:

Code: [ Select ]
<?php
$Qword[0] = "sketch";
$Qword[1] = "regulations";
$Qword[2] = "excellent";
$Qword[3] = "staff";
$Qword[4] = "drawings";
$Qword[5] = "portfolio";

$i = 1;

$number = 0;
?>

<form name="list" action="list.php" method="post">

<?php
if($next){
switch($number){
case 0: echo $Qword[$number]; $number + $i; break;
case 1: echo $Qword[$number]; $number + $i; break;
case 2: echo $Qword[$number]; $number + $i; break;
case 3: echo $Qword[$number]; $number + $i; break;
case 4: echo $Qword[$number]; $number + $i; break;
case 5: echo $Qword[$number]; $number + $i; break;
}
}
?>


<input type="submit" name="next" value="Next" size=10 style="BORDER: #000000 1px line ; COLOR: white; BACKGROUND-COLOR:#888888" >

</form>
  1. <?php
  2. $Qword[0] = "sketch";
  3. $Qword[1] = "regulations";
  4. $Qword[2] = "excellent";
  5. $Qword[3] = "staff";
  6. $Qword[4] = "drawings";
  7. $Qword[5] = "portfolio";
  8. $i = 1;
  9. $number = 0;
  10. ?>
  11. <form name="list" action="list.php" method="post">
  12. <?php
  13. if($next){
  14. switch($number){
  15. case 0: echo $Qword[$number]; $number + $i; break;
  16. case 1: echo $Qword[$number]; $number + $i; break;
  17. case 2: echo $Qword[$number]; $number + $i; break;
  18. case 3: echo $Qword[$number]; $number + $i; break;
  19. case 4: echo $Qword[$number]; $number + $i; break;
  20. case 5: echo $Qword[$number]; $number + $i; break;
  21. }
  22. }
  23. ?>
  24. <input type="submit" name="next" value="Next" size=10 style="BORDER: #000000 1px line ; COLOR: white; BACKGROUND-COLOR:#888888" >
  25. </form>


Ce que je voulais qu'il fasse, c'est quand vous appuyez sur le bouton "Suivant",
Il montre un mot. (que ce soit, vraiment)
La première fois afficher le mot #1
Cliquez sur Suivant à nouveau l'affichage puis Word #2 seulement

etc.etc.

Elle agit différentes,
purement Ceci peut être vu [url=http://members.lycos.nl/dave90/list.php]ici [/ ur]

Ici, il montre le premier mot, encore et encore,
ou, il montre le premier mot seulement.

La différence est que #1, le script est exécuté chaque fois que vous appuyez sur Suivant, mais par certains spectacles «erreur de script" (le premier mot) seulement, ou, #2,
le script ne s'exécute pas après le 1er (?) moment.

Je ne sais pas ce qui Im mal faire, id apprécions l'aide
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Janvier 17th, 2004, 4:12 am

  • RichB
  • Guru
  • Guru
  • Avatar de l’utilisateur
  • Inscription: Mai 17, 2003
  • Messages: 1121
  • Loc: Boston
  • Status: Offline

Message Janvier 17th, 2004, 5:28 am

You "ll" nécessité de sauvegarder la valeur du nombre que vous êtes l'incrémentation entre les exécutions du script ou il va tout simplement continuer de réinitialiser chaque fois que vous exécutez le script. Également $ nombre + $ i n'est pas fait vraiment quelque chose parce que vous ne sauvegardez pas la valeur. Je pense qu'il serait plus simple d'utiliser une seule variable, on l'incrémente et passer le long d'un champ de formulaire cachés, de sorte que la nouvelle valeur sera disponible après le formulaire est affiché:
Code: [ Select ]
<?php
$Qword[0] = "sketch";
$Qword[1] = "regulations";
$Qword[2] = "excellent";
$Qword[3] = "staff";
$Qword[4] = "drawings";
$Qword[5] = "portfolio";

// set $number to zero if it isn't already set or is too high
if(!isset($number) || $number > 5)
{
    $number=0;
}
?>

<form name="list" action="list.php" method="post">

<?php
if($next){
switch($number){
case 0: echo $Qword[$number]; break;
case 1: echo $Qword[$number]; break;
case 2: echo $Qword[$number]; break;
case 3: echo $Qword[$number]; break;
case 4: echo $Qword[$number]; break;
case 5: echo $Qword[$number]; break;
}
// increment number by one (same as $number = $number + 1)
$number++;
}
?>

<input type="submit" name="next" value="Next" size=10 style="BORDER: #000000 1px line ; COLOR: white; BACKGROUND-COLOR:#888888" >
<input type="hidden" name="number" value="<? echo $number ?>">
</form>
  1. <?php
  2. $Qword[0] = "sketch";
  3. $Qword[1] = "regulations";
  4. $Qword[2] = "excellent";
  5. $Qword[3] = "staff";
  6. $Qword[4] = "drawings";
  7. $Qword[5] = "portfolio";
  8. // set $number to zero if it isn't already set or is too high
  9. if(!isset($number) || $number > 5)
  10. {
  11.     $number=0;
  12. }
  13. ?>
  14. <form name="list" action="list.php" method="post">
  15. <?php
  16. if($next){
  17. switch($number){
  18. case 0: echo $Qword[$number]; break;
  19. case 1: echo $Qword[$number]; break;
  20. case 2: echo $Qword[$number]; break;
  21. case 3: echo $Qword[$number]; break;
  22. case 4: echo $Qword[$number]; break;
  23. case 5: echo $Qword[$number]; break;
  24. }
  25. // increment number by one (same as $number = $number + 1)
  26. $number++;
  27. }
  28. ?>
  29. <input type="submit" name="next" value="Next" size=10 style="BORDER: #000000 1px line ; COLOR: white; BACKGROUND-COLOR:#888888" >
  30. <input type="hidden" name="number" value="<? echo $number ?>">
  31. </form>
Free Programming Resources
  • Inito
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Déc 30, 2003
  • Messages: 223
  • Status: Offline

Message Janvier 17th, 2004, 10:57 am

génial, ça marche

merci

Cependant, je voudrais encore trop réaliser ce que j'ai vraiment fait mal.

ok, i get it now $ à la mise en nombre.

cependant, a été ma façon de faire de $ nombre + $ 1 vraiment mal, ou juste $ nombre + + plus facile?
Et si faire de la façon dont je suis l'auteur, il n'a pas vraiment d'enregistrer, pourquoi est-il de cette façon? ($ nombre + +)

Aussi, Im en utilisant Dreamweaver 4, pas vraiment pour les boutons, mais pour les couleurs et les lignes.
Mais, chaque fois que j'écris quelque chose dans son PHP tous bleu (le script en partie).
Les commentaires sont eux aussi en bleu. Les personnes doivent être gris. Im pas sûr que le code PHP lui-même est divisé en Dreamweaver.

Cause, je me souviens de l'aide de certains scripts (i collé dans DW), et les commentaires sont tous en gris, et je crois que le code avait des différences dans les couleurs aussi.
Est-il besoin d'une indication de code?
  • RichB
  • Guru
  • Guru
  • Avatar de l’utilisateur
  • Inscription: Mai 17, 2003
  • Messages: 1121
  • Loc: Boston
  • Status: Offline

Message Janvier 17th, 2004, 11:03 am

Vous avez eu $ nombre + $ i $ i avec la tenue de la valeur de 1,
Ceci est bien sûr le même que $ nombre + 1
Cette expression va générer une valeur de la valeur actuelle de $ nombre + 1, mais vous avez besoin de stocker la valeur générée en $ nombre comme ceci:

$ nombre = $ nombre + $ i;
ou
$ nombre = $ nombre + 1;

Vous avez juste à côté du $ nombre = part (vous n'avez pas besoin de si $ nombre + +; parce que sa base un moyen plus facile d'écrire $ nombre = $ nombre + 1)

Im pas sûr au sujet de votre question Dreamweaver. J'ai DreamweaverMX et il ne évidence de la syntaxe de mon code (bien que je n'ai pas vraiment l'utiliser tant que ça). Ma version montre les commentaires en orange, en bleu les mots-clés php, et le script d'ouverture et de clôture des délimiteurs en rouge. Les indications de code devrait être le même que vous avez utilisé dans ce script - vous ne devriez pas avoir besoin de faire quelque chose de spécial pour que dreamweaver Im au courant de toute façon.
Free Programming Resources
  • Inito
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Déc 30, 2003
  • Messages: 223
  • Status: Offline

Message Janvier 17th, 2004, 11:34 am

bizarre, mal demander aux alentours

anyways, si vous ne pouvez manquer un peu plus de votre temps libre à aider-moi à nouveau, id appreciate it.

Expliquer certains malades d'abord, ce que cette chose est censé faire, c'est d'afficher un mot, vous remplissez la traduction, cliquez sur "remplir", obtenir la page qui montre si sa mauvaise ou bonne, et en montrant votre réponse et ce que la réponse correcte devrait l'être.

J'ai inséré votre code en cela, mais a découvert que j'avais à faire quelques changements.

Code de montrer le mot suit:

Code: [ Select ]
<?php
$Qword[0] = "sketch";
$Qword[1] = "regulations";
$Qword[2] = "excellent";
$Qword[3] = "staff";
$Qword[4] = "drawings";
$Qword[5] = "portfolio";

$answer[0] = "schets";
$answer[1] = "regels";
$answer[2] = "geweldig";
$answer[3] = "medewerkers";
$answer[4] = "tekeningen";
$answer[5] = "verzamelmap";

// set $number to zero if it isn't already set or is too high
if(!isset($number) || $number > 5)
{
  $number=0;
}
?>

<form name="ordened" action="evaluation2.php" method="post">

<?php
if($next){
switch($number){
case 0: echo $Qword[$number]; break;
case 1: echo $Qword[$number]; break;
case 2: echo $Qword[$number]; break;
case 3: echo $Qword[$number]; break;
case 4: echo $Qword[$number]; break;
case 5: echo $Qword[$number]; break;
}
// increment number by one (same as $number = $number + 1)
$number++;
}
?>

<input type=hidden name=q value="<?php
if($next){
switch($number){
case 0: echo $Qword[$number]; break;
case 1: echo $Qword[$number]; break;
case 2: echo $Qword[$number]; break;
case 3: echo $Qword[$number]; break;
case 4: echo $Qword[$number]; break;
case 5: echo $Qword[$number]; break;

}
?>">

<input type=text name=fillin size="60">

<input type=hidden name=canswer value="<?php
if($next){
switch($number){
case 0: echo $answer[$number]; break;
case 1: echo $answer[$number]; break;
case 2: echo $answer[$number]; break;
case 3: echo $answer[$number]; break;
case 4: echo $answer[$number]; break;
case 5: echo $answer[$number]; break;
}
}
?>">

<input type="submit" name="invullen" value="Invullen" size=10 >
<input type="hidden" name="number" value="<? echo $number ?>">

</form>
  1. <?php
  2. $Qword[0] = "sketch";
  3. $Qword[1] = "regulations";
  4. $Qword[2] = "excellent";
  5. $Qword[3] = "staff";
  6. $Qword[4] = "drawings";
  7. $Qword[5] = "portfolio";
  8. $answer[0] = "schets";
  9. $answer[1] = "regels";
  10. $answer[2] = "geweldig";
  11. $answer[3] = "medewerkers";
  12. $answer[4] = "tekeningen";
  13. $answer[5] = "verzamelmap";
  14. // set $number to zero if it isn't already set or is too high
  15. if(!isset($number) || $number > 5)
  16. {
  17.   $number=0;
  18. }
  19. ?>
  20. <form name="ordened" action="evaluation2.php" method="post">
  21. <?php
  22. if($next){
  23. switch($number){
  24. case 0: echo $Qword[$number]; break;
  25. case 1: echo $Qword[$number]; break;
  26. case 2: echo $Qword[$number]; break;
  27. case 3: echo $Qword[$number]; break;
  28. case 4: echo $Qword[$number]; break;
  29. case 5: echo $Qword[$number]; break;
  30. }
  31. // increment number by one (same as $number = $number + 1)
  32. $number++;
  33. }
  34. ?>
  35. <input type=hidden name=q value="<?php
  36. if($next){
  37. switch($number){
  38. case 0: echo $Qword[$number]; break;
  39. case 1: echo $Qword[$number]; break;
  40. case 2: echo $Qword[$number]; break;
  41. case 3: echo $Qword[$number]; break;
  42. case 4: echo $Qword[$number]; break;
  43. case 5: echo $Qword[$number]; break;
  44. }
  45. ?>">
  46. <input type=text name=fillin size="60">
  47. <input type=hidden name=canswer value="<?php
  48. if($next){
  49. switch($number){
  50. case 0: echo $answer[$number]; break;
  51. case 1: echo $answer[$number]; break;
  52. case 2: echo $answer[$number]; break;
  53. case 3: echo $answer[$number]; break;
  54. case 4: echo $answer[$number]; break;
  55. case 5: echo $answer[$number]; break;
  56. }
  57. }
  58. ?>">
  59. <input type="submit" name="invullen" value="Invullen" size=10 >
  60. <input type="hidden" name="number" value="<? echo $number ?>">
  61. </form>


Code d'évaluation:

Code: [ Select ]
<?php
if($fillin != $canswer){
//answer is incorrect
echo "Fout!<br>Klik op Volgende om verder te gaan";
} else {
//answer is correct
echo "Goed!<br>Klik op Volgende om verder te gaan";
}
?>

<form name="Volgende" action="ordened.php" method="post">
<input type="submit" name="next" value="Volgende" size=10 >
</form>

<?php echo $fillin ?> //shows what you filled in

<?php echo $canswer ?> //shows correct answer
  1. <?php
  2. if($fillin != $canswer){
  3. //answer is incorrect
  4. echo "Fout!<br>Klik op Volgende om verder te gaan";
  5. } else {
  6. //answer is correct
  7. echo "Goed!<br>Klik op Volgende om verder te gaan";
  8. }
  9. ?>
  10. <form name="Volgende" action="ordened.php" method="post">
  11. <input type="submit" name="next" value="Volgende" size=10 >
  12. </form>
  13. <?php echo $fillin ?> //shows what you filled in
  14. <?php echo $canswer ?> //shows correct answer


Je sais, c'est plus facile pour afficher le mot dans un champ texte immédiatement, donc je n'ai pas besoin de créer un tout nouveau champ caché, mais il regarde mieux, et c'est une manière que je préfère le faire.

Pour le champ caché contenant la valeur du mot (la trouver la voie par le calculer comme le code qui s'affiche est) et la réponse (calculé même aussi) J'ai enlevé la partie de l'augmentation $ nombre, parce que cela voulait dire chaque champ tiendrait une valeur différente, non? (autre mot, donc)

Document qui affiche le mot
[url=http://members.lycos.nl/dave90/evaluation2.php]Document qui évalue la forme, et après des résultats en vous montrant dirige retour à l'afficheur de mot
Code: [ Select ]
<?php
$Qword[0] = "sketch";
$Qword[1] = "regulations";
$Qword[2] = "excellent";
$Qword[3] = "staff";
$Qword[4] = "drawings";
$Qword[5] = "portfolio";

$answer[0] = "schets";
$answer[1] = "regels";
$answer[2] = "geweldig";
$answer[3] = "medewerkers";
$answer[4] = "tekeningen";
$answer[5] = "verzamelmap";

// set $number to zero if it isn't already set or is too high
if(!isset($number) || $number > 5)
{
  $number=0;
}
?>

<form name="ordened" action="evaluation2.php" method="post">

<?php echo $Qword[$number] ?>

<input type=text name=fillin size="60">

<input type=hidden name=q value="<?php echo $Qword[$number] ?>">

<input type=hidden name=canswer value="<?php echo $answer[$number]; $number++;?>">

<input type="submit" name="invullen" value="Invullen" size=10 >
<input type="hidden" name="number" value="<? echo $number ?>">
</form> 
  1. <?php
  2. $Qword[0] = "sketch";
  3. $Qword[1] = "regulations";
  4. $Qword[2] = "excellent";
  5. $Qword[3] = "staff";
  6. $Qword[4] = "drawings";
  7. $Qword[5] = "portfolio";
  8. $answer[0] = "schets";
  9. $answer[1] = "regels";
  10. $answer[2] = "geweldig";
  11. $answer[3] = "medewerkers";
  12. $answer[4] = "tekeningen";
  13. $answer[5] = "verzamelmap";
  14. // set $number to zero if it isn't already set or is too high
  15. if(!isset($number) || $number > 5)
  16. {
  17.   $number=0;
  18. }
  19. ?>
  20. <form name="ordened" action="evaluation2.php" method="post">
  21. <?php echo $Qword[$number] ?>
  22. <input type=text name=fillin size="60">
  23. <input type=hidden name=q value="<?php echo $Qword[$number] ?>">
  24. <input type=hidden name=canswer value="<?php echo $answer[$number]; $number++;?>">
  25. <input type="submit" name="invullen" value="Invullen" size=10 >
  26. <input type="hidden" name="number" value="<? echo $number ?>">
  27. </form> 


Code: [ Select ]
<?php
if($fillin != $canswer){
//answer is incorrect
echo "Fout!<br>Klik op Volgende om verder te gaan";
} else {
//answer is correct
echo "Goed!<br>Klik op Volgende om verder te gaan";
}
?>

<form name="Volgende" action="ordened.php" method="post">
<input type="submit" name="next" value="Volgende" size=10 >
<input type="hidden" name="number" value="<? echo $number ?>">
</form>

<?php echo $fillin ?> //shows what you filled in

<?php echo $canswer ?> //shows correct answer
  1. <?php
  2. if($fillin != $canswer){
  3. //answer is incorrect
  4. echo "Fout!<br>Klik op Volgende om verder te gaan";
  5. } else {
  6. //answer is correct
  7. echo "Goed!<br>Klik op Volgende om verder te gaan";
  8. }
  9. ?>
  10. <form name="Volgende" action="ordened.php" method="post">
  11. <input type="submit" name="next" value="Volgende" size=10 >
  12. <input type="hidden" name="number" value="<? echo $number ?>">
  13. </form>
  14. <?php echo $fillin ?> //shows what you filled in
  15. <?php echo $canswer ?> //shows correct answer


Je pense thats it anyway.
Free Programming Resources
  • Inito
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Déc 30, 2003
  • Messages: 223
  • Status: Offline

Message Janvier 18th, 2004, 4:54 am

Youre remercie une fois de plus :wink:

mais voici une autre chose, et je m'excuse de maintien de la peine pour vous;

Il serait tout à fait efficace que si l'utilisateur n'aurait pas besoin de sa souris.
Cela signifie que le champ de texte doit être automatiquement sélectionnée, et doit donc être le "remplir" le bouton, et sur l'évaluation de la page le bouton "Suivant".

Je pense que ive vu que le terrain est déjà sélectionné, j'ai essayé moi-même certaines théories, mais aucun travail.

En outre, les boutons, il ne serait pas nécessaire pour eux d'être sélectionnés, mais, au pas sûr si son possible, ils pourraient organiser un raccourci. (enter / retour est une sorte de raccourci quand le bouton est sélectionné)

N'importe quoi?
  • RichB
  • Guru
  • Guru
  • Avatar de l’utilisateur
  • Inscription: Mai 17, 2003
  • Messages: 1121
  • Loc: Boston
  • Status: Offline

Message Janvier 18th, 2004, 5:55 am

Vous pouvez définir le focus sur un champ de texte ou un bouton en utilisant JavaScript. Pour le premier fichier dans lequel vous souhaitez définir le focus sur le champ de texte vous pouvez ajouter le scriipt après le champ de texte est créé:

Code: [ Select ]
<input type="submit" name="invullen" value="Invullen" size=10 >
<input type="hidden" name="number" value="<? echo $number ?>">

</form>

<script type="text/javascript">
<!--
document.ordened.fillin.focus();
-->
</script>
  1. <input type="submit" name="invullen" value="Invullen" size=10 >
  2. <input type="hidden" name="number" value="<? echo $number ?>">
  3. </form>
  4. <script type="text/javascript">
  5. <!--
  6. document.ordened.fillin.focus();
  7. -->
  8. </script>


et pour le second fichier, vous pouvez ajouter le script suivant & #058;

Code: [ Select ]
<form name="Volgende" action="ordened.php" method="post">
<input type="submit" name="next" value="Volgende" size=10 >
<input type="hidden" name="number" value="<? echo $number ?>">
</form>

<script type="text/javascript">
<!--
document.Volgende.next.focus();
-->
</script>
  1. <form name="Volgende" action="ordened.php" method="post">
  2. <input type="submit" name="next" value="Volgende" size=10 >
  3. <input type="hidden" name="number" value="<? echo $number ?>">
  4. </form>
  5. <script type="text/javascript">
  6. <!--
  7. document.Volgende.next.focus();
  8. -->
  9. </script>


Il ya effectivement plus d'une méthode pour le faire avec JavaScript, mais avec les exemples de code youve m'a montré cette méthode est la plus simple. La seule véritable contrainte à faire de cette façon, c'est que le javascript doit être en dehors du code php et de brûler les éléments de formulaire qui sont visées ont été créés (vous ne pouvez pas définir le focus sur quelque chose qui n'existe pas encore). Cela devrait permettre à vos utilisateurs d'aller et venir sans avoir à utiliser la souris. Appuyant sur la touche entrée sera la même que cliquer sur le bouton de la seconde forme et le curseur apparaît automatiquement à l'intérieur du champ de texte sur le premier formulaire.
Free Programming Resources
  • Inito
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Déc 30, 2003
  • Messages: 223
  • Status: Offline

Message Janvier 18th, 2004, 8:29 am

Youre l'homme.
  • Inito
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Déc 30, 2003
  • Messages: 223
  • Status: Offline

Message Janvier 19th, 2004, 9:40 am

Je déteste vous tenir occupé sur ce sujet-là, je le pense vraiment.

Je sais que les logiques des actions suivantes ont tort, mais si j'ai battu mon 10x tête sur le mur rien ne va changer.

J'avais déjà fait cela avant que je vienne ici, mais n'a toujours pas trouvé aucune solution.

À droite, permet d'arriver au point. Si je veux faire une "unordened liste, laissez l'ordinateur décider. Ce que j'ai pensé:

Code: [ Select ]
<input type=hidden name=q value="<?php 
mt_srand(time());
$counter = mt_rand(0,5);
switch($counter) {
case 0: echo $answer[0]; break;
case 1: echo $answer[1]; break;
case 2: echo $answer[2]; break;
case 3: echo $answer[3]; break;
case 4: echo $answer[4]; break;
case 5: echo $answer[5]; break;
}
?>">
  1. <input type=hidden name=q value="<?php 
  2. mt_srand(time());
  3. $counter = mt_rand(0,5);
  4. switch($counter) {
  5. case 0: echo $answer[0]; break;
  6. case 1: echo $answer[1]; break;
  7. case 2: echo $answer[2]; break;
  8. case 3: echo $answer[3]; break;
  9. case 4: echo $answer[4]; break;
  10. case 5: echo $answer[5]; break;
  11. }
  12. ?>">


semble assez logique, non?
Calculez le temps en secondes à partir de 1970 et de calculer de manière que le résultat sera 0,1,2,3,4,5

Désolé si im vous ralentir, je n'étais pas sûr si itd venir familières.

Je pense que works fine.

Le problème est, il l'épargne.
Pour l'afficher j'ai utilisé

Code: [ Select ]
<?php 
echo $q;
?>
  1. <?php 
  2. echo $q;
  3. ?>


But thats mal, non?
Si je fais cela, itll calculer à nouveau et sans doute venir à un autre numéro.

Code: [ Select ]
<?php
$Qword[] = "offered";
$Qword[] = "don/'t match";
$Qword[] = "whether or";
$Qword[] = "regulations";
$Qword[] = "portfolio";

$answer[] = "medewerkers";
$answer[] = "boden aan";
$answer[] = "passen niet bij elkaar";
$answer[] = "of of";
$answer[] = "regels";

// set $number/$correct/$incorrect to zero if it isn't already set or is too high

if(!isset($number))
{
  $number=0;
}

if(!isset($correct))
{
  $correct=0;
}

if(!isset($incorrect))
{
  $incorrect=0;
}
?>
  1. <?php
  2. $Qword[] = "offered";
  3. $Qword[] = "don/'t match";
  4. $Qword[] = "whether or";
  5. $Qword[] = "regulations";
  6. $Qword[] = "portfolio";
  7. $answer[] = "medewerkers";
  8. $answer[] = "boden aan";
  9. $answer[] = "passen niet bij elkaar";
  10. $answer[] = "of of";
  11. $answer[] = "regels";
  12. // set $number/$correct/$incorrect to zero if it isn't already set or is too high
  13. if(!isset($number))
  14. {
  15.   $number=0;
  16. }
  17. if(!isset($correct))
  18. {
  19.   $correct=0;
  20. }
  21. if(!isset($incorrect))
  22. {
  23.   $incorrect=0;
  24. }
  25. ?>


l'en-tête est la présentation habituelle ^ ^
J'ai gardé la variable $ nombre pour le comptage des mots ce que vous avez traduit. Le comte correctes et incorrectes, combien correcte / incorrecte traduits. Ces travaux de belles choses.

/ / Note: je suis passé QWord $ pour $ réponse, alors la question sera hold $ réponse, et la réponse sera hold $ QWord

Code: [ Select ]
<input type=hidden name=canswer value="<?php
switch($q) {
case 0: echo $Qword[0]; break;
case 1: echo $Qword[1]; break;
case 2: echo $Qword[2]; break;
case 3: echo $Qword[3]; break;
case 4: echo $Qword[4]; break;
case 5: echo $Qword[5]; break;
}
// increment number by one (same as $number = $number + 1)
$number++;
?>
  1. <input type=hidden name=canswer value="<?php
  2. switch($q) {
  3. case 0: echo $Qword[0]; break;
  4. case 1: echo $Qword[1]; break;
  5. case 2: echo $Qword[2]; break;
  6. case 3: echo $Qword[3]; break;
  7. case 4: echo $Qword[4]; break;
  8. case 5: echo $Qword[5]; break;
  9. }
  10. // increment number by one (same as $number = $number + 1)
  11. $number++;
  12. ?>


J'ai utilisé cela pour obtenir la bonne réponse.
Ofcourse Mais c'est faux encore, car on obtient un nouveau numéro de nouveau, non?

pour l'envoi d'informations i ont

Code: [ Select ]
<input type="submit" name="invullen" value="Invullen" size=10 style="BORDER: #000000 1px line ; COLOR: white; BACKGROUND-COLOR:#888888" >
<input type="hidden" name="number" value="<? echo $number ?>">
<input type="hidden" name="correct" value="<? echo $correct ?>">
<input type="hidden" name="incorrect" value="<? echo $incorrect ?>">
  1. <input type="submit" name="invullen" value="Invullen" size=10 style="BORDER: #000000 1px line ; COLOR: white; BACKGROUND-COLOR:#888888" >
  2. <input type="hidden" name="number" value="<? echo $number ?>">
  3. <input type="hidden" name="correct" value="<? echo $correct ?>">
  4. <input type="hidden" name="incorrect" value="<? echo $incorrect ?>">


__________________ -
Évaluation

Code: [ Select ]
<?php
if($fillin != $canswer){
// answer is incorrect
echo "Fout!";
$incorrect++;
} else {
// answer is correct
echo "Goed!";
$correct++;
}
?>
  1. <?php
  2. if($fillin != $canswer){
  3. // answer is incorrect
  4. echo "Fout!";
  5. $incorrect++;
  6. } else {
  7. // answer is correct
  8. echo "Goed!";
  9. $correct++;
  10. }
  11. ?>


Pour l'affichage erroné / droite, et le calcul erroné / droite.

Code: [ Select ]
<form name="Volgende" action="unordened.php" method="post">
<input type="submit" name="next" value="Volgende" size=10 style="BORDER: #000000 1px line ; COLOR: white; BACKGROUND-COLOR:#888888" >
<input type="hidden" name="number" value="<? echo $number ?>">
<input type="hidden" name="correct" value="<? echo $correct ?>">
<input type="hidden" name="incorrect" value="<? echo $incorrect ?>">
</form>
  1. <form name="Volgende" action="unordened.php" method="post">
  2. <input type="submit" name="next" value="Volgende" size=10 style="BORDER: #000000 1px line ; COLOR: white; BACKGROUND-COLOR:#888888" >
  3. <input type="hidden" name="number" value="<? echo $number ?>">
  4. <input type="hidden" name="correct" value="<? echo $correct ?>">
  5. <input type="hidden" name="incorrect" value="<? echo $incorrect ?>">
  6. </form>


Renvoyant l'info....

Et quelques autres, comme montrant la quantité de incorrectes / correct / total fait, votre réponse, la réponse correcte.
Mais je doute que ceux-ci seront de toute question ici.
  • RichB
  • Guru
  • Guru
  • Avatar de l’utilisateur
  • Inscription: Mai 17, 2003
  • Messages: 1121
  • Loc: Boston
  • Status: Offline

Message Janvier 20th, 2004, 6:20 am

Je viens de réaliser que votre basculer déclarations sont redondantes et inutiles. Je devrais avoir remarqué avant, mais j'étais juste rapidement à la recherche d'autres choses. J'ai édité mon post ci-dessus pour le montrer sans le switch.

Mauvais oeil dans la chose peu aléatoire - la création d'une valeur aléatoire au lieu d'incrémentation ne doit pas grand-chose, mais vous voulez garder une trace des mots qui vous ont déjà demandé, de façon à ne pas continuer de poser les mêmes mots encore et encore . Je pense que vous pouvez faire cela en utilisant une chaîne de caractères pour contenir le nombre de valeurs, les mots qui ont été posées à ce jour. Im pas tout à fait familier avec les fonctions de gestion de chaîne phps, mais je vais l'examiner.
Free Programming Resources
  • RichB
  • Guru
  • Guru
  • Avatar de l’utilisateur
  • Inscription: Mai 17, 2003
  • Messages: 1121
  • Loc: Boston
  • Status: Offline

Message Janvier 20th, 2004, 7:46 pm

Ok, si j'ai bien compris que vous recherchez pour demander au Qwords dans un ordre aléatoire, si j'ai généré le nombre aléatoire de la même manière vous avez fait et gardé la trace des numéros utilisés jusqu'ici par l'addition (concaténation) à une chaîne de chiffres. Je passai la chaîne $ demandé d'avant en arrière comme une valeur cachée de la même manière que vous utilisez déjà.

Ensuite, chaque fois que je généré un nouveau nombre aléatoire je vérifié pour voir si toutes les paroles avaient été en utilisant en comparant le nombre de chiffres dans la chaîne $ demandé au nombre total de mots dans le tableau Qwords. Si tous les mots n'avaient pas encore été utilisé, j'ai ensuite vérifié pour voir si le nouveau nombre aléatoire est un QWord qui n'avaient pas encore été posées en vérifiant pour voir si elle était déjà l'un des chiffres de la chaîne $ demandé. S'il l'était, j'ai continué à générer un nombre aléatoire de nouvelles jusqu'à ce que j'aie trouvé un qui n'avait pas déjà été utilisé.

Si tous les Qwords avait été, j'ai demandé a montré les résultats et est sorti du script avec un lien vers la page pour recommencer à nouveau. Si l'utilisateur clique sur le lien puis ils demandent de nouveau la page sans aucune valeur masqué est défini et tout est initialisé à nouveau et le processus recommence.

ordened.php
Code: [ Select ]
<?php

$Qword[0] = "sketch";
$Qword[1] = "regulations";
$Qword[2] = "excellent";
$Qword[3] = "staff";
$Qword[4] = "drawings";
$Qword[5] = "portfolio";

$answer[0] = "schets";
$answer[1] = "regels";
$answer[2] = "geweldig";
$answer[3] = "medewerkers";
$answer[4] = "tekeningen";
$answer[5] = "verzamelmap";

mt_srand(time());
$randomNum = mt_rand(0,5);

// if we haven't started yet initialize everything
if(!isset($number))
{
    $asked="$randomNum";
    $number=0;
    $correct=0;
    $incorrect=0;
}
else
{
    // if the number of words asked so far is less than the total number
    // of Qwords keep choosing randomly until every Qword is used once

    if(strlen($asked) < count($Qword))
    {
        // while the randomNum is found in the asked string
        // keep looking for one that hasn't been asked yet

        while(substr_count($asked,$randomNum)!=0)
        {
            $randomNum = mt_rand(0,5);    
        }

        // add the next value to the asked string
        $asked.="$randomNum";        
    }
    else
    {
        // all the Qwords have been asked if we're here
        echo "<p>All Done!</p>";
        echo "<p>Words asked: $number </p>";
        echo "<p>Correct answers: $correct </p>";
        echo "<p>Incorrect answers: $incorrect </p>";
        echo "<p>To try again <a href=\"ordened.php\">Click Here</a></p>";
        exit;        
    }
}
$number++;
?>

<form name="ordened" action="evaluation2.php" method="post">
<?php echo $Qword[$randomNum] ?>
<input type=text name=fillin size="60">
<input type="hidden" name="q" value="<?php echo $Qword[$randomNum] ?>">
<input type="hidden" name="canswer" value="<?php echo $answer[$randomNum] ?>">
<input type="hidden" name="asked" value="<?php echo $asked ?>">
<input type="hidden" name="number" value="<? echo $number ?>">
<input type="hidden" name="correct" value="<? echo $correct ?>">
<input type="hidden" name="incorrect" value="<? echo $incorrect ?>">
<input type="submit" name="invullen" value="Invullen" size=10 >
</form>

<script type="text/javascript">
<!--
document.ordened.fillin.focus();
-->
</script>
  1. <?php
  2. $Qword[0] = "sketch";
  3. $Qword[1] = "regulations";
  4. $Qword[2] = "excellent";
  5. $Qword[3] = "staff";
  6. $Qword[4] = "drawings";
  7. $Qword[5] = "portfolio";
  8. $answer[0] = "schets";
  9. $answer[1] = "regels";
  10. $answer[2] = "geweldig";
  11. $answer[3] = "medewerkers";
  12. $answer[4] = "tekeningen";
  13. $answer[5] = "verzamelmap";
  14. mt_srand(time());
  15. $randomNum = mt_rand(0,5);
  16. // if we haven't started yet initialize everything
  17. if(!isset($number))
  18. {
  19.     $asked="$randomNum";
  20.     $number=0;
  21.     $correct=0;
  22.     $incorrect=0;
  23. }
  24. else
  25. {
  26.     // if the number of words asked so far is less than the total number
  27.     // of Qwords keep choosing randomly until every Qword is used once
  28.     if(strlen($asked) < count($Qword))
  29.     {
  30.         // while the randomNum is found in the asked string
  31.         // keep looking for one that hasn't been asked yet
  32.         while(substr_count($asked,$randomNum)!=0)
  33.         {
  34.             $randomNum = mt_rand(0,5);    
  35.         }
  36.         // add the next value to the asked string
  37.         $asked.="$randomNum";        
  38.     }
  39.     else
  40.     {
  41.         // all the Qwords have been asked if we're here
  42.         echo "<p>All Done!</p>";
  43.         echo "<p>Words asked: $number </p>";
  44.         echo "<p>Correct answers: $correct </p>";
  45.         echo "<p>Incorrect answers: $incorrect </p>";
  46.         echo "<p>To try again <a href=\"ordened.php\">Click Here</a></p>";
  47.         exit;        
  48.     }
  49. }
  50. $number++;
  51. ?>
  52. <form name="ordened" action="evaluation2.php" method="post">
  53. <?php echo $Qword[$randomNum] ?>
  54. <input type=text name=fillin size="60">
  55. <input type="hidden" name="q" value="<?php echo $Qword[$randomNum] ?>">
  56. <input type="hidden" name="canswer" value="<?php echo $answer[$randomNum] ?>">
  57. <input type="hidden" name="asked" value="<?php echo $asked ?>">
  58. <input type="hidden" name="number" value="<? echo $number ?>">
  59. <input type="hidden" name="correct" value="<? echo $correct ?>">
  60. <input type="hidden" name="incorrect" value="<? echo $incorrect ?>">
  61. <input type="submit" name="invullen" value="Invullen" size=10 >
  62. </form>
  63. <script type="text/javascript">
  64. <!--
  65. document.ordened.fillin.focus();
  66. -->
  67. </script>


evaluation2.php
Code: [ Select ]
<?php
if($fillin != $canswer){
// answer is incorrect
echo "Fout!";
$incorrect++;
} else {
// answer is correct
echo "Goed!";
$correct++;
}
?>

<form name="Volgende" action="ordened.php" method="post">
<input type="submit" name="next" value="Volgende" size=10 >
<input type="hidden" name="number" value="<? echo $number ?>">
<input type="hidden" name="correct" value="<? echo $correct ?>">
<input type="hidden" name="incorrect" value="<? echo $incorrect ?>">
<input type="hidden" name="asked" value="<? echo $asked ?>">
</form>

<p>The word: <?php echo $q ?></p>
<p>Your answer: <?php echo $fillin ?></p>
<p>Correct answer: <?php echo $canswer ?></p>
<p>Total asked so far: <?php echo $number ?></p>
<p>Correct answers so far: <?php echo $correct ?></p> 
<p>Incorrect answers so far: <?php echo $incorrect ?></p>

<script type="text/javascript">
<!--
document.Volgende.next.focus();
-->
</script>
  1. <?php
  2. if($fillin != $canswer){
  3. // answer is incorrect
  4. echo "Fout!";
  5. $incorrect++;
  6. } else {
  7. // answer is correct
  8. echo "Goed!";
  9. $correct++;
  10. }
  11. ?>
  12. <form name="Volgende" action="ordened.php" method="post">
  13. <input type="submit" name="next" value="Volgende" size=10 >
  14. <input type="hidden" name="number" value="<? echo $number ?>">
  15. <input type="hidden" name="correct" value="<? echo $correct ?>">
  16. <input type="hidden" name="incorrect" value="<? echo $incorrect ?>">
  17. <input type="hidden" name="asked" value="<? echo $asked ?>">
  18. </form>
  19. <p>The word: <?php echo $q ?></p>
  20. <p>Your answer: <?php echo $fillin ?></p>
  21. <p>Correct answer: <?php echo $canswer ?></p>
  22. <p>Total asked so far: <?php echo $number ?></p>
  23. <p>Correct answers so far: <?php echo $correct ?></p> 
  24. <p>Incorrect answers so far: <?php echo $incorrect ?></p>
  25. <script type="text/javascript">
  26. <!--
  27. document.Volgende.next.focus();
  28. -->
  29. </script>

[code]
Free Programming Resources
  • Inito
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Déc 30, 2003
  • Messages: 223
  • Status: Offline

Message Janvier 21st, 2004, 6:55 am

merci homme, je ne pense pas que je wouldve figured it cela.

Theres cette dernière chose, une commande que je ne sais pas, mais qui doit exister.

que le résultat final im utilisent actuellement

Code: [ Select ]
<?php
if($number == 114){

$percentagec = $correct / $number * 100;
$percentagei = $incorrect / $number * 100;


if(strlen($percentagec) > 3){
$pcorrect = substr($percentagec,0,4);
}

if(strlen($percentagei) > 3){
$pincorrect = substr($percentagei,0,4);
}

echo "<font face=Arial><span style=font-size:14>Gefeliciteerd!<p>U bent klaar!</span></font>";
echo "<P><br><font face=Arial><span style=font-size:13>U had in totaal ".$correct." goed, ";
echo $incorrect." fout,<br>";
echo "van de ".$number." vragen.";
echo "<p>U had ongeveer ".$pcorrect."% goed, en ".$pincorrect."% fout.</span></font>";
}
else
{
?>
.....
<?php
}
?>
  1. <?php
  2. if($number == 114){
  3. $percentagec = $correct / $number * 100;
  4. $percentagei = $incorrect / $number * 100;
  5. if(strlen($percentagec) > 3){
  6. $pcorrect = substr($percentagec,0,4);
  7. }
  8. if(strlen($percentagei) > 3){
  9. $pincorrect = substr($percentagei,0,4);
  10. }
  11. echo "<font face=Arial><span style=font-size:14>Gefeliciteerd!<p>U bent klaar!</span></font>";
  12. echo "<P><br><font face=Arial><span style=font-size:13>U had in totaal ".$correct." goed, ";
  13. echo $incorrect." fout,<br>";
  14. echo "van de ".$number." vragen.";
  15. echo "<p>U had ongeveer ".$pcorrect."% goed, en ".$pincorrect."% fout.</span></font>";
  16. }
  17. else
  18. {
  19. ?>
  20. .....
  21. <?php
  22. }
  23. ?>


Fondamentalement, son propos de l'% correct / incorrect
j'ai fait en sorte que, si elle a plus de 3 chiffres, affichent uniquement les 3 premiers.
Mais, ce ne sera pas toujours tout à fait raison, la cause elle devrait être arrondies.
Par exemple, il pouvait montrer 85% correct, et 14,9 $ tort.

Im pas au courant de la commande / fonction, ce n'est pas écrit dans le livre que je possède, et quelques autres personnes que je connais ne pouvait pas me dire non plus. Ils ne conviennent que si elle doit exister.
Pensez-vous, ou tout autre, arriver à le connaître?
  • RichB
  • Guru
  • Guru
  • Avatar de l’utilisateur
  • Inscription: Mai 17, 2003
  • Messages: 1121
  • Loc: Boston
  • Status: Offline

Message Janvier 21st, 2004, 11:16 am

Je pense que le round () funtion devrait être ce que vous cherchez - si vous regardez l'exemple dans le manuel php en cliquant sur le lien, je pense que ça va tuer deux oiseaux avec une pierre par arrondissement et de la mise en précision.

Deux autres fonctions utiles sont arrondis ceil () et floor () .
Free Programming Resources
  • Inito
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Déc 30, 2003
  • Messages: 223
  • Status: Offline

Message Janvier 26th, 2004, 6:50 am

thanks a million. im sure qu'il va faire.
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Janvier 26th, 2004, 6:50 am

Afficher de l'information

  • Total des messages de ce sujet: 18 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 212 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC