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.'.&nbsp';
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].'&nbsp 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
 
?>