Bonjour,
j'ai un probleme de recuperation d'une variable $_POST via php, qui fonctionne tres bien sous FF mais pas sous IE. et comme il y a du javascript dans mon script je pense que cela peut venir de la.
le but de mon script et d'interoger une BDD afin de recuperer une phrase ($phrase). mettre les mots de cette phrase dans le desordre et afficher ces mots. demander a l'internaute de remettre ces mots dans l'ordre (via javascript il clique sur les mots et cela vient les afficher dans un texte area) et ensuite verifier que la phrase ($_POST['ecran'.$m.'']) constitué par l'internaute (via les mots) correspond bien a la phrase anterieurement recuperer via la BDD.
Ce que je ne comprend pas d'ailleur c'est que lorsque je demande a afficher la phrase via un echo elle s'affiche parfaitement(sous FF et IE), mais si je fait if ($_POST['ecran'.$m.''] == $phrase) ; alors sous IE cela me renvoit pas true, alors que sous FF ca fonctionne tres bien.
Je vous met le script ci dessous si cela peut aidé. D'avance merci.
Remarque: comme j'ai plusieurs phrase dans ma BDD a traiter j'ai differencié ces phrase via la variable $m qui s'incremente de 1 à chaque phrase.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85 <?php include ("connexion_a_bdd.php"); // on se connecte a la base de données $m =1; // on verifie qu'il y a bien un qcm dans la base de donnée pour ce cours et cette langue $reponsess = mysql_query("SELECT qcm_question FROM qcm WHERE qcm_numero = '$selection' "); // Requête SQL ATTENTION la variable doit etre entre appostrophe pour que ca fonctionne $donnees = mysql_fetch_array($reponsess); if (isset($donnees['qcm_question'])) // si c'est bien le cas on affiche { echo 'Mettre les mots dans le bon ordre:'; echo '<br />'; echo '<br />'; //echo '<form method="post" action="index.php?page=cour">'; // on rappelle la page pour quelle nous donne le resultat $reponsess = mysql_query("SELECT qcm_question FROM qcm WHERE qcm_numero = '$selection' "); // Requête SQL ATTENTION la variable doit etre entre appostrophe pour que ca fonctionne while ($donnees = mysql_fetch_array($reponsess) ) // on recupere successivement les valeurs qcm reponse pour la selection { $numero_qcm = 1; $z=0; $t = 0; $liste_de_mots = 0; $liste = array(); $phrase = $donnees['qcm_question']; // on recupere la phrase dans la base de donnée qcm $z = strlen($phrase); // compte le nombre de lettre dans la phrase, cela sert uniquement pour augmenter le nombre de ligne de champs de saisie $liste_de_mots = explode(" ",$phrase); //le tableau liste de mots va avoir un mots de la phrase pour chacune de ses valeurs. $t =count($liste_de_mots); // nous donne le nombre de mot dans la phrase if ($t>1) { For($i=0; $i<$t; $i++) { $liste[]=$i; // on cree une liste de chiffre allant de 0 à t (t etant le nombre de mots dans la phrase) } echo '<form NAME="formecran" method="post" action="index.php?page=cour">'; $liste1= $liste; while ($liste[0] == $liste1[0]) {shuffle($liste);} // on melange ces chiffres via la fonction php shuffle echo $m.'. '; foreach($liste as $j) // on parcourt l'ensemble du tableau { // --------------------------------------------------------------------------- // PARTIE VISIBLE if ($j!=$t-1) {echo '<input type="button" value='.$liste_de_mots[$j].'  NAME="je" onclick="ajouter'.$m.'(this)" class="bouton_qcm"/>';} // $nbsp c'est pour faire un espace en html elseif ($j==$t-1) {echo '<input type="button" value='.$liste_de_mots[$j].' onclick="ajouter'.$m.'(this)" class="bouton_qcm"/>';} // $nbsp c'est pour faire un espace en html // --------------------------------------------------------------------------- } } $ligne = round($z/50); // permet d'evaluer le nombre de ligne necessaire pour l'ecriture de la la phrase ?> <script type="text/javascript"> function ajouter<?php echo $m; ?>(lettre) {document.formecran.ecran<?php echo $m; ?>.value+=lettre.value} // fonction qui ajouter dans la zone de texte le texte des boutons lorsque l'on click dessus. </SCRIPT> <?php // --------------------------------------------------------------------------- // PARTIE VISIBLE if (!isset($_POST['ecran'.$m.''])) $_POST['ecran'.$m.''] = ''; echo '<textarea name="ecran'.$m.'" rows='.$ligne.' cols="50"/>'.$_POST['ecran'.$m.''].'</textarea>'; echo '<br />'; if ($_POST['ecran'.$m.''] == '') echo ''; Elseif ($_POST['ecran'.$m.''] == $phrase) echo 'correct'; Else {echo 'FAUX, reponse: '.$phrase; echo $_POST['ecran'.$m.''];} $m++; echo '<br />'; echo '<br />'; } echo '<input type="submit" value="VALIDER" />'; //echo '</FORM>'; echo '</FORM>'; } else {echo 'qcm non disponible';} // --------------------------------------------------------------------------- mysql_close(); // Déconnexion de MySQL ?>
Partager