jyi
Messages postés9Date d'inscriptionsamedi 2 juin 2007StatutMembreDernière intervention26 juillet 2008
-
12 juil. 2008 à 15:07
toutoos
Messages postés56Date d'inscriptionmercredi 4 juin 2008StatutMembreDernière intervention17 octobre 2009
-
26 juil. 2008 à 23:20
Voilà mon problème:
J'ai créé un liste déroulante qui est remplie par un boucle while avec les données d'une base de données après une requête sql.
Quand je clique sur une des lignes je déclenche (entr'autre) un rechargement de la page compet_saisie.php (onclick=submit() + method="post").
Le problème est que j'aimerais garder la sélection après le rechargement de page mais ceci ne se fait pas.
Voici le code du fichier compet_saisie.php
Il semble que le test $licencie_selectionne==$_POST['liste5'] ne marche pas et je n'arrive pas à comprendre pourquoi.
Merci d'avance pour votre contribution.
toutoos
Messages postés56Date d'inscriptionmercredi 4 juin 2008StatutMembreDernière intervention17 octobre 2009 25 juil. 2008 à 19:15
Utilise tu easy PHP car sur easy php lors cve ke le poste n'est pas envoyé il renvoi une erreur
deplus le poste ne dépend pas du nom prénom du licincié mais de son numéro :
echo "<option value ='".$licencie_num.'"';
if ( !empty($_POST['numerodelicence']) ) {
$_POST['numerodelicence'] = $licencie_nomprenom );
if ( $_POST['numerodelicence'] == $licencie_num ) {
echo " selected";
}
}
echo ">".$licencie_nomprenom."</option>";
De plus j'ai trouvé mon érreur! C'es tchipoter mais ca suffi a planter un script!
echo "<option value ='".$licencie_selectionne.'"';
if ($licencie_selectionne==$_POST['liste5']) {
echo " selected";
}
echo ">".$licencie_selectionne."</option>";
}
?>
</select>
</form>
<hr />Je me permet de texpliquer pourquoi!
Dabord si tu ne passe aucun parametre a ton select ( le value de chaque otpion ) ta variable $_POST['liste5'] sera toujours nulle vue que tu ne la passe pas! ensuite tu test le post directement sur ta boucle et pas a la suite car sinon elle va retourner tous les resultats! et voila je pense que c'est tt se ke je peut dire!
jyi
Messages postés9Date d'inscriptionsamedi 2 juin 2007StatutMembreDernière intervention26 juillet 2008 22 juil. 2008 à 21:24
Bonsoir,
Je te remercie de prendre de ton temps pour t'interesser à mon problème.
J'ai essayé le sript et voilà ce qui en ressort:
-dans la liste déroulante, je n'ai que 10 noms au lieu de 32
-A côté de chaque noms dans la liste j'ai un message qui me dit que la variable $_POST['liste5'] n'est pas définie (ligne où il y a : if ($licencie_selectionne==$_POST['liste5']))
-Le nom cliqué ne reste pas sélectionné au rechargement de page.
toutoos
Messages postés56Date d'inscriptionmercredi 4 juin 2008StatutMembreDernière intervention17 octobre 2009 23 juil. 2008 à 10:33
aaa okai
alors a ta place je ne ferai pas comme ca!!!
a koi te sert ton menu déroulant si tu y affiche la totalitée des informations?
a ta place je n'extrairai que le nom et prenom enfin regarde je te montre!
<hr />
// Pour la partie menu déroulant
<?php
$sql="SELECT * FROM licencies WHERE club='".$_SESSION['club']."' ' ";
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
?>
<form id="form1" name="form1" onclick=submit() method="post" action="compet_saisie.php">
<select name="numerodelicence" size="10" style="background: #FFFFCC" >
<?php
$sql2="SELECT * FROM licencies WHERE club='".$_SESSION['club']."' AND num_lic='".$_POST['numerodelicence']."' LIMIT 1";
$req2 = mysql_query($sql2) or die('Erreur SQL !
'.$sql2.'
'.mysql_error());
if ( $val2 = mysql_fetch_array($req2) ) {
// et la tu met toute les information tel que le nom prenom numéro sex ...
}
?>
jyi
Messages postés9Date d'inscriptionsamedi 2 juin 2007StatutMembreDernière intervention26 juillet 2008 23 juil. 2008 à 11:52
Je suis désolé mais hélas d'une part j'ai toujours les mêmes problèmes que le 1 er code que tu m'avais fourni (la variable POST non définie avant d'avoir cliqué sur un nom de la liste) et d'autre part, quand je clique sur une ligne de la liste celle-ci ne reste toujours pas sélectionnée après le rechargement de page.
Dans ton code, tu remplis d'une part une liste avec les noms et les prénoms et d'autre part un tableau avec les caractéristique du licencié sélectionné. Ceci je l'avais déjà fait.
Le problème reste la liste déroulante où la ligne sélectionnée ne veut pas rester sélectionnée après un rechargement de page
toutoos
Messages postés56Date d'inscriptionmercredi 4 juin 2008StatutMembreDernière intervention17 octobre 2009 23 juil. 2008 à 16:30
si tu test ton script sur easy php la variable $_POST renvéra toujour cette érreur le code idéale serai de la tester avant de l'utiliser! ce qui n'est pas un problème et je ne voi pas pourquoi la ligne ne resterai pas sélectionné! c'est un copier collé d'un de mes menu déroulant!
Voila le code idéal
<?php
$sql="SELECT * FROM licencies WHERE club='".$_SESSION['club']."' ' ";
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
?>
<form id="form1" name="form1" onclick=submit() method="post" action="compet_saisie.php">
<select name="numerodelicence" size="10" style="background: #FFFFCC" >
<?php
echo "<option value ='".$licencie_num.'"';
if ( !empty($_POST['numerodelicence']) ) {
if ( $_POST['numerodelicence'] == $licencie_num ) {
echo " selected";
}
}
echo ">".$licencie_nomprenom."</option>";
}
?>
</select>
</form>
<?php
// pour la partie tableau
if ( !empty($_POST['numerodelicence']) ){
$sql2="SELECT * FROM licencies WHERE club='".$_SESSION['club']."' AND num_lic='".$_POST['numerodelicence']."' LIMIT 1";
$req2 = mysql_query($sql2) or die('Erreur SQL !
'.$sql2.'
'.mysql_error());
if ( $val2 = mysql_fetch_array($req2) ) {
// et la tu met toute les information tel que le nom prenom numéro sex ...
}
}
else {
echo "Vous devez sélectionner une personne licenciée";
}
?>
Donc voila a modifier a ta guise et évite d'utilise easy php ou autre mais le en ligne c'est plus directe et les variables non postées ne retourne aucune érreur car le désaventage de ce genre de logiciel c'est que tu ne peut pas utiliser les variables ou tu a défini la valeur 0 car pour ce logiciel elle seront quand meme retournée vide alors que tu les a définie!
jyi
Messages postés9Date d'inscriptionsamedi 2 juin 2007StatutMembreDernière intervention26 juillet 2008 25 juil. 2008 à 18:18
Bonsoir,
Me revoila de retour.
J'ai essayé ton code hélas ça ne marche pas.
J'ai fait quelques tests et j'ai constaté ceci:
- Dans l'égalité if ( $_POST['numerodelicence'] == $licencie_num )à la place de $licencie_num il faudrait peut-être $licencie_nomprenom car le $_POST['numerodelicence'] pointe un nom et un prénom ?
- D'autre part, pour forcer et tester cette egalité, jute avant j'ai inséré la ligne:$_POST['numerodelicence'] = $licencie_nomprenom );
le résultat c'est que la sélection de la ligne se met à fonctionner mais la ligne sélectionnée est la dernière quelque soit la ligne sélectionnée.
Avec ce test, on sait au moins que, sans la forcer, l'égalité ne fonctionne pas.
Je n'arrive pas à comprendre car pour moi ton code est nickel.
jyi
Messages postés9Date d'inscriptionsamedi 2 juin 2007StatutMembreDernière intervention26 juillet 2008 26 juil. 2008 à 21:53
Bravo ! Bravo ! Bravo !
La seule erreur qui restait était effectivement ce double cote.
C'était cette erreur qui faisait que ça ne fonctionnait pas.
Cétait cette erreur qui faisait que j'avais la moitié des licenciés qui s'afiichaient dans la liste déroulante.
Bravo pour ta persévérance. Tu ne sais pas comme ça me fait plaisir.
toutoos
Messages postés56Date d'inscriptionmercredi 4 juin 2008StatutMembreDernière intervention17 octobre 2009 26 juil. 2008 à 23:20
En même temps c'est en copiant le code juste au dessus que j'ai remarqué! je trouvé que ma façon de coder ne ressemblait pas a ca! et comme quoi! Même si je suis bordelique je retrouve mes erreures!