traitement formulaire javascript/php
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 :
Code:
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);
}
--> |
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:
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>';
} |
Afin de les r�cup�rer dans ma seconde partie pour les traiter ainsi :
Code:
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'];
...... |
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".
Merci d'avance.
Cordialement.
Benorito