[PhP] MaJ à l'aide d'une liste déroulante
Résolu
Estydral
Messages postés
39
Date d'inscription
Statut
Membre
Dernière intervention
-
Estydral Messages postés 39 Date d'inscription Statut Membre Dernière intervention -
Estydral Messages postés 39 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un petit soucis avec un formulaire de mise à jour de données (PhP et MySQL).
Ce que je souhaite faire: en séléctionnant différents choix dans une liste déroulante, je voudrais que d'autres valeurs correspondants a celle de la liste déroulante s'affichent.
Le problème semble venir de ma requete SQL, mais je ne sais pas du tout comment corriger sa :(
// Requête SQL
$query="SELECT date_actu FROM ACTUALITE WHERE nom_actu='".$_POST['liste']."';";
Le message d'erreur qui s'affiche est: Notice: Undefined index: liste
("liste" correspond au nom de ma liste déroulante)
Désolé pour les explications sommaires, je ne voulais pas poser tout le code ^^
Merci!
j'ai un petit soucis avec un formulaire de mise à jour de données (PhP et MySQL).
Ce que je souhaite faire: en séléctionnant différents choix dans une liste déroulante, je voudrais que d'autres valeurs correspondants a celle de la liste déroulante s'affichent.
Le problème semble venir de ma requete SQL, mais je ne sais pas du tout comment corriger sa :(
// Requête SQL
$query="SELECT date_actu FROM ACTUALITE WHERE nom_actu='".$_POST['liste']."';";
Le message d'erreur qui s'affiche est: Notice: Undefined index: liste
("liste" correspond au nom de ma liste déroulante)
Désolé pour les explications sommaires, je ne voulais pas poser tout le code ^^
Merci!
A voir également:
- [PhP] MaJ à l'aide d'une liste déroulante
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- È maj - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
- Maj chrome - Accueil - Applications & Logiciels
9 réponses
t'est sure qu'elle s'appelle bien "liste" ta liste ?
tu passe bien les variables du formulaire par la methode POST ?
parceque d'apres le message $_POST['liste'] n'existe pas
tu passe bien les variables du formulaire par la methode POST ?
parceque d'apres le message $_POST['liste'] n'existe pas
<td>
<select name="liste">
<option value=''> - Faîtes votre choix - </option>
<?PHP
// Connexion a la BDD
$link=mysql_connect("localhost","root","")or die("Connexion impossible".mysql_error());
//Selection de la BDD
mysql_select_db("MyBDD")or die("Selection de la base impossible");
// Requête SQL
$query="SELECT nom_actu
FROM ACTUALITE;";
$result=mysql_query($query)or die("Erreur lors de la requête :".mysql_error());
while ($donnees = mysql_fetch_assoc($result))
{
echo '<option value='. $donnees["nom_actu"] ;
if ( isset ($_POST['Agree']))
{
if ($_POST['liste'] == $donnees["nom_actu"])
{
echo ' selected="selected"' ;
}
}
echo '>'. $donnees["nom_actu"].'</option>' ;
}
// Deconnexion de la BDD
mysql_free_result($result);
mysql_close($link);
?>
</select>
</td>
Désolé pour la longueur, donc sa c'est le code de ma liste déroulante. Elle s'affiche nickel j'ai pas de probleme la dessus :)
<select name="liste">
<option value=''> - Faîtes votre choix - </option>
<?PHP
// Connexion a la BDD
$link=mysql_connect("localhost","root","")or die("Connexion impossible".mysql_error());
//Selection de la BDD
mysql_select_db("MyBDD")or die("Selection de la base impossible");
// Requête SQL
$query="SELECT nom_actu
FROM ACTUALITE;";
$result=mysql_query($query)or die("Erreur lors de la requête :".mysql_error());
while ($donnees = mysql_fetch_assoc($result))
{
echo '<option value='. $donnees["nom_actu"] ;
if ( isset ($_POST['Agree']))
{
if ($_POST['liste'] == $donnees["nom_actu"])
{
echo ' selected="selected"' ;
}
}
echo '>'. $donnees["nom_actu"].'</option>' ;
}
// Deconnexion de la BDD
mysql_free_result($result);
mysql_close($link);
?>
</select>
</td>
Désolé pour la longueur, donc sa c'est le code de ma liste déroulante. Elle s'affiche nickel j'ai pas de probleme la dessus :)
<div id="profil">
<form name="new_sujet" method="POST">
....
Je n'ai pas d'action, c'est grave docteur? :s
<form name="new_sujet" method="POST">
....
Je n'ai pas d'action, c'est grave docteur? :s
Il dois rester sur la même page, j'ai fais comme sa pour mon formulaire d'inscription sa me va bien :)
Je link le code de mon premier textbox que je souhaite mettre a jour en fonction de la liste déroulante 'désolé pour l'encombrement):
<tr>
<td class="largeur_tab">Date (JJ-MM-AAAA):</td><td width=""><input type="text" name="date" size="15px"
<?PHP
// Connexion a la BDD
$link=mysql_connect("localhost","root","")or die("Connexion impossible".mysql_error());
//Selection de la BDD
mysql_select_db("MyBDD")or die("Selection de la base impossible");
// Requête SQL
$query="SELECT date_actu FROM ACTUALITE WHERE nom_actu='".$_POST['liste']."';";
$result=mysql_query($query)or die("Erreur lors de la requête :".mysql_error());
// Deconnexion de la BDD
mysql_free_result($result);
mysql_close($link);
if (isset($_POST["Agree"]) and !empty($_POST['date']))
echo " value=".$_POST['date'];
?>
></td>
<td>
<?PHP
if (isset($_POST["Agree"]) and empty($_POST['date']))
echo "<font color='red'>Vous n'avez pas saisi la date de l'évènement</font><br/>";
?>
</td>
</tr>
Je link le code de mon premier textbox que je souhaite mettre a jour en fonction de la liste déroulante 'désolé pour l'encombrement):
<tr>
<td class="largeur_tab">Date (JJ-MM-AAAA):</td><td width=""><input type="text" name="date" size="15px"
<?PHP
// Connexion a la BDD
$link=mysql_connect("localhost","root","")or die("Connexion impossible".mysql_error());
//Selection de la BDD
mysql_select_db("MyBDD")or die("Selection de la base impossible");
// Requête SQL
$query="SELECT date_actu FROM ACTUALITE WHERE nom_actu='".$_POST['liste']."';";
$result=mysql_query($query)or die("Erreur lors de la requête :".mysql_error());
// Deconnexion de la BDD
mysql_free_result($result);
mysql_close($link);
if (isset($_POST["Agree"]) and !empty($_POST['date']))
echo " value=".$_POST['date'];
?>
></td>
<td>
<?PHP
if (isset($_POST["Agree"]) and empty($_POST['date']))
echo "<font color='red'>Vous n'avez pas saisi la date de l'évènement</font><br/>";
?>
</td>
</tr>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Avec la protection je n'ai plus le message d'erreur quand j'arrive sur la page, merci beaucoup ^^
Mais cependant l'affichage ne se fait pas, j'ai vérifié tous mes noms de champ et sa m'a l'air bon.. Avec cette méthode l'actualisation des données se fais directement ou avec validation du formulaire? Même avec validation sa n'affiche rien..
Merci beaucoup de t'interesser à ce probleme en tout cas :)
Mais cependant l'affichage ne se fait pas, j'ai vérifié tous mes noms de champ et sa m'a l'air bon.. Avec cette méthode l'actualisation des données se fais directement ou avec validation du formulaire? Même avec validation sa n'affiche rien..
Merci beaucoup de t'interesser à ce probleme en tout cas :)
l'actualisation des données ce fais a chaque entrée sur la page, donc directement et apres validation.
C'est pour ça que la premiere fois que t'arrive sur la page $_POST['liste'] est vide, mais la ou c'est pas normal c'est qu'il soit vide apres validation du formulaire
essai de mettre quand même une action a la balise form car c'est pas valide de ne pas en mètre même si sa marche.
Tu met juste action="#".
Si ça ne marche toujours pas, faudrai regarder concretement ce qu'il y a dans ton $_POST
alors au tout debut de ta page fais simplement un
print_r($_POST);
Il va t'afficher tout le contenu de ce tableau de variable donc choisi quelque chose dans la liste, valide et regarde ce qu'il t'ecrit ;)
C'est pour ça que la premiere fois que t'arrive sur la page $_POST['liste'] est vide, mais la ou c'est pas normal c'est qu'il soit vide apres validation du formulaire
essai de mettre quand même une action a la balise form car c'est pas valide de ne pas en mètre même si sa marche.
Tu met juste action="#".
Si ça ne marche toujours pas, faudrai regarder concretement ce qu'il y a dans ton $_POST
alors au tout debut de ta page fais simplement un
print_r($_POST);
Il va t'afficher tout le contenu de ce tableau de variable donc choisi quelque chose dans la liste, valide et regarde ce qu'il t'ecrit ;)
J'ai rajouté l'action et le test me dit:
Array ( [liste] => Test [date] => [lien] => [remarque] => [Agree] => Ok )
Je ne sais pas trop a quoi sa correspond je suis niveau débutant :s
Je vais regarder sa tranquille ce soir et je donnerais des nouvelles demain matin je pense :s
Array ( [liste] => Test [date] => [lien] => [remarque] => [Agree] => Ok )
Je ne sais pas trop a quoi sa correspond je suis niveau débutant :s
Je vais regarder sa tranquille ce soir et je donnerais des nouvelles demain matin je pense :s
Je l'ignore :s Il me semble que sa viens du second bout de code (concernant la date) ou il manque quelques chose :s
Dsl pour le double post, on ne peut edit que jusque que 60min après ^^
Problème résolu grace à Mimiste :) Merci beaucoup!
N'ayant fait que de l'insertion de données auparavant, je n'avais pas fait le traitement de la donnée...
// Requête SQL
$query="SELECT date_actu FROM ACTUALITE WHERE nom_actu='".$_POST['liste']."';";
$result=mysql_query($query)or die("Erreur lors de la requête :".mysql_error());
echo " value=".mysql_result($result, 0);
Problème résolu grace à Mimiste :) Merci beaucoup!
N'ayant fait que de l'insertion de données auparavant, je n'avais pas fait le traitement de la donnée...
// Requête SQL
$query="SELECT date_actu FROM ACTUALITE WHERE nom_actu='".$_POST['liste']."';";
$result=mysql_query($query)or die("Erreur lors de la requête :".mysql_error());
echo " value=".mysql_result($result, 0);