Bonjour tout le monde !
Donc j'ai un problème depuis plusieurs jours concernant la création d'un formulaire pour laisser des commentaire et une notation après validation du psedo et de l'email de l'utilisateur.
Donc dans une première partie j'avais réaliser le formulaire tout fonctionnai parfaitement, jusqu'à se que j'insère une notification par étoile en javascript.
De cela je m'égard totalement ! Mon formulaire de saisi se valide via un simple form envoyant alors les variables en post afin de les traiter. Problème mon système de notification par étoile traite en javascript via un onload sur mon body et un "document.location.href=...." dans mon javascript.
J'ai donc réfléchi la dessus et me suis dis que la solution qui me paraissait la plus simple était simplement de recharger la même page quand la personne coche les étoiles et ainsi d'envoyer cette variable, de cela je peut bloquer le nombré d'étoiles cochés et récupérer la variable par la même.
Problème qui se pause est, quand je recharge cette page après avoir cliqué sur un nombré d'étoile mais variable initial envoyé lors de l'ouverture de la page (refdoc ...) sont perdu ! La notification prenant en compte le onload sur body et non le form. J'ai donc essayé de faire passer plusieurs variables dans le code javascript mais rien n'y fait je suis malheureusement perdu mais connaissance en javascript sont plus que limité.
C'est d'ailler pour cela que je viens vous demander conseils. Je souhaite juste récupérer mais 3 variables ($refdoc / $reftype / $note) dans ma seconde partie afin de les traiter.
Voici le code javascript :
Et voici le code php de ma 1er partie, une fois la page recharger avec la variable note, les 2 erreurs se produisent sur mais deux première requêtes (Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\Siteperso\coment.php on line ...), refdoc et reftype ne sont pas envoyé le traitement ne peut donc être réalisé :
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 StarOutUrl= 'StarOut.gif'; //image par défaut StarOverUrl= 'StarOver.gif'; //image d'une étoile sélectionnée StarBaseId= 'Star'; //id de base des étoiles NbStar= 10; //nombre d'étoiles LgtStarBaseId=StarBaseId.lastIndexOf(''); function NotationSystem() { for (i=1;i<NbStar+1;i++) { var img = document.getElementById('Star'+i); img.onclick = function(){ //alert(Name2Nb(this.id)); document.location.href="coment.php?note="+Name2Nb(this.id); }; //Réaction lors du clic sur une étoile //Evidemment, il faudrait compléter cette fonction pour la rendre vraiment utile. //Par exemple, envoyer la note dans une base de donnée via un XMLHttpRequest. img.alt ='Donner la note de '+i; //Texte au survol img.src =StarOutUrl; img.onmouseover =function() {StarOver(this.id);}; img.onmouseout =function() {StarOut(this.id);}; } } function StarOver(Star) { StarNb=Name2Nb(Star); for (i=1;i<(StarNb*1)+1;i++) { document.getElementById('Star'+i).src=StarOverUrl; } } function StarOut(Star) { StarNb=Name2Nb(Star); for (i=1;i<(StarNb*1)+1;i++) { document.getElementById('Star'+i).src=StarOutUrl; } } function Name2Nb(Star) { //Le survol d'une étoile ne nous permet pas de connaître directement son numéro //Cette fonction extrait donc ce numéro à partir de l'Id StarNb=Star.slice(LgtStarBaseId); return(StarNb); } -->
Afin de les récupérer dans ma seconde partie pour les traiter ainsi :
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99 <body onload="NotationSystem()" style="margin: 0px; padding: 0px;"> <div id="comment" > <?php if(!isset($test)) $test = 0; if($_POST['test'] == 0) { $refdoc=$_GET['refdoc']; $reftype=$_GET['reftype']; $cit=$_GET['cit']; $note=$_GET['note']; if ($note=="") { $note=$_POST['note']; } if ($refdoc=="") { $refdoc=$_POST['refdoc']; $reftype=$_POST['reftype']; } $connexion= mysql_connect($MyServeur,$MyLogin,$MyPass) or die ("Erreur, connexion à la base de données impossible"); mysql_select_db($MyBase,$connexion); $reqtitre="SELECT * FROM news WHERE ref=".$refdoc; $resultitre=mysql_query($reqtitre); $reference=mysql_fetch_array($resultitre); $titretype="SELECT * FROM type WHERE reftype=".$reftype; $resulttype=mysql_query($titretype, $connexion); $rtype=mysql_fetch_array($resulttype); ... </div> echo "<br><div id='cadre2comm' >"; echo "<table>"; echo "<tr><td>"; echo '<form name="form1" method="POST" action="coment.php" >'; echo '<input type="hidden" name ="test" value="1" />'; $connexion= mysql_connect($MyServeur,$MyLogin,$MyPass) or die ("Erreur, connexion à la base de données impossible"); mysql_select_db($MyBase,$connexion); echo '<input type="hidden" name="refdoc" value="'.$refdoc.'" ></input>'; echo '<input type="hidden" name="typedoc" value="'.$reftype.'" ></input>'; echo '<b>Vote (Nom et adresse mail obligatoire pour valider le vote) :</b><br/>'; if ($note!="") { $i = 1; while ($i<=$note) { $i++; echo '<img width="20px" src="StarOver.gif" />'; } $meno=10-$note; $a = 1; while ($a<=$meno) { $a++; echo '<img width="20px" src="StarOut.gif" />'; } } else { echo '<img id="Star1" width="20px" src="StarOut.gif" /><img id="Star2" width="20px" src="StarOut.gif" />'; echo '<img id="Star3" width="20px" src="StarOut.gif" /><img id="Star4" width="20px" src="StarOut.gif" />'; echo '<img id="Star5" width="20px" src="StarOut.gif" /><img id="Star6" width="20px" src="StarOut.gif" />'; echo '<img id="Star7" width="20px" src="StarOut.gif" /><img id="Star8" width="20px" src="StarOut.gif" />'; echo '<img id="Star9" width="20px" src="StarOut.gif" /><img id="Star10" width="20px" src="StarOut.gif" />'; } echo '<br><br><b>Nom (obligatoire) :</b><br/>'; echo '<input type="text" size="50" name="nom" value='.$psedo.' ><br/></td>'; echo '<tr><td><b>Adresse e-mail (ne sera pas publié) (obligatoire)</b><br/>'; echo '<input type="text" size="50" name="mail" value='.$mail.' ><br/></td>'; echo '<tr><td><b>Site Web </b><br/>'; echo '<input type="text" size="50" name="site" value='.$siteperso.' ><br/></td></tr>'; echo '<tr><td><b>Votre commentaire :</b><br/>'; echo '<textarea rows=7" cols="55" name="comment" value='.$commentaires.' ></textarea><br/></td></tr>'; echo '<tr><td>'; echo '<input type="submit" value="Valider" name="btvalider"/>'; echo '</td></tr></table></form></div><br><br>'; }
J attend vos réponses, conseils, solutions sur se problème et vous remercie d'avance, le code n'est pas très propre pour le moment vu que rien n'est terminé. Je voudrais simplement trouvé une solution pour récupérer ces 3 variables $refdoc / $reftype / $note et réussir a mes traiter dans mon $_POST['test'] == "1".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?php //echo '<pre>', print_r($GLOBALS), '</pre>'; if($_POST['test'] == "1") { $nom=$_POST['nom']; $site=$_POST['site']; $mail=$_POST['mail']; $comment=$_POST['comment'];; $ref=$_POST['refdoc']; $type=$_POST['typedoc']; $note=$_POST['note']; $note=$_GET['note']; ......
Merci d'avance.
Cordialement.
Benorito
Partager