PHP: id non transmis ?
Résolu/Fermé
txiki
Messages postés
6596
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
22 février 2024
-
2 janv. 2011 à 06:32
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 2 janv. 2011 à 20:13
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 2 janv. 2011 à 20:13
4 réponses
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
2 janv. 2011 à 11:06
2 janv. 2011 à 11:06
Salut salut,
Si le problème vient du fait que la variable ID est absente de ton URL, alors pas la peine de nous filer le code du formulaire : il nous faut plutôt le code de la page dans laquelle GET[ID] est créée !
Si le problème vient du fait que la variable ID est absente de ton URL, alors pas la peine de nous filer le code du formulaire : il nous faut plutôt le code de la page dans laquelle GET[ID] est créée !
txiki
Messages postés
6596
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
22 février 2024
518
2 janv. 2011 à 14:54
2 janv. 2011 à 14:54
Merci pour ta réponse,
La page est un résumé pour s'assurer que c'est bien le bon article qui est à modifier dont voici un extrait:
J'espère que ça te suffit.
Le bonheur est la seule chose que l'on peut donner sans l'avoir.
La page est un résumé pour s'assurer que c'est bien le bon article qui est à modifier dont voici un extrait:
<?php // On recupere la variable "id" correspondant au prénom choisi //ce script est appelé par un click sur le lien n'est ce pas, alors l'id est passé par l'URL donc en GET $id=$_GET['ID']; // on récupère la requete par la variable $_GET // on prends les infos de connexion sur le fichier Fonctions_Agenda.php require 'Fonctions_Agenda.php'; // connection à la DB $link = mysql_pconnect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base mysql_select_db($db) or die ('Impossible de se connecter à la base'); // sélection de la table // requête SQL qui affiche les infos de la fiche correspondante au lien cliqué $select = "SELECT Titre, Stitre1, Stitre, Info FROM agenda WHERE ID='$id'"; // On selectionne seulement la ligne qui correspond à l'événement choisi $query = mysql_query($select) or die ('Erreur : '.mysql_error() ); $row= mysql_fetch_array($query); // mysql_fetch_array génère un tableau correspondant a la ligne selectionnée de la BDD // on affiche la fiche dans un tableau généré, dans le div id="global" comme le reste des pages. echo '<table width="100%" align="center" border="0" cellspacing="0" cellpadding="6">'; // on affiche un tableau echo '<tr><td><h1>'.$row["Titre"].'</h1></td></tr>'; // affiche la variable Titre echo '<tr><td><center><i>'.$row["Stitre1"].'</i></center></td></tr>'; // affiche la variable Stitre1 echo '<tr><td><center><i>'.$row["Stitre"].'</i></center></td></tr>'; // affiche la variable Stitre echo '<tr><td><p>'.$row["Info"].'</p></td></tr>'; // affiche la variable Info echo '</table>'; // on ferme le tableau mysql_close(); ?> <!-- Le bouton SUBMIT doit obligatoirement se trouver à l'intérieur des balises FORM --> <form name="Modif" id="Modif" action="Formulaire_Modifier.php" method="post" /> <p align="center"><input type="submit" value="Modifier"/></p> </form>
J'espère que ça te suffit.
Le bonheur est la seule chose que l'on peut donner sans l'avoir.
Facegeek
Messages postés
39
Date d'inscription
dimanche 2 janvier 2011
Statut
Membre
Dernière intervention
8 septembre 2012
5
2 janv. 2011 à 15:17
2 janv. 2011 à 15:17
Remplace method="post" par method="get"
txiki
Messages postés
6596
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
22 février 2024
518
2 janv. 2011 à 15:28
2 janv. 2011 à 15:28
Eh ben, j'ai déjà essayé c'est pour ça que je ne comprends pas !
Facegeek
Messages postés
39
Date d'inscription
dimanche 2 janvier 2011
Statut
Membre
Dernière intervention
8 septembre 2012
5
2 janv. 2011 à 16:00
2 janv. 2011 à 16:00
Et si tu fais passer l'ID par post ?
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
2 janv. 2011 à 16:38
2 janv. 2011 à 16:38
Mais c'est dans cette page que tu insères le variable GET ?!
txiki
Messages postés
6596
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
22 février 2024
518
2 janv. 2011 à 17:34
2 janv. 2011 à 17:34
Ca c'est le bouton qu'on voit sur l'article pour s'assurer que c'est bien celui là qu'il faut modifier (quand on clique sur un des liens de la liste):
Et ça c'est le code du formulaire qui devrait être pré-renseigné:
Merci en tous cas pour votre aide. (Déjà que j'ai été obligé de créer 3 users (Ajout, Modif et Delete car je ne savais pas comment faire pour choisir la bonne requete sur une même page)...
<form name="Modif" id="Modif" action="Formulaire_Modifier.php" method="GET" /> <p align="center"><input type="submit" value="Modifier"/></p> </form>
Et ça c'est le code du formulaire qui devrait être pré-renseigné:
//ce script est appelé par un click sur le lien n'est ce pas, alors l'id est passé par l'URL donc en GET $id=$_GET['ID']; // on récupère la requete par la variable $_GET // on prends les infos de connexion sur le fichier Fonctions_Agenda.php require 'Fonctions_Agenda.php'; // connection à la DB $link = mysql_pconnect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base mysql_select_db($db) or die ('Impossible de se connecter à la base'); // sélection de la table // requête SQL qui affiche les infos de la fiche correspondante au lien cliqué $select = 'SELECT * FROM agenda WHERE ID="$id"'; // On selectionne seulement la ligne qui correspond à l'événement choisi $query = mysql_query($select) or die ('Erreur : '.mysql_error() ); $row= mysql_fetch_array($query); // mysql_fetch_array génère un tableau correspondant a la ligne selectionnée de la BDD et ici le début du FORM <form name="Presse" id="Presse" action="Traitement_Agenda_Modifier.php" onSubmit="return verif(this)" method="POST"> <p><label for="ID"></label> <input name="ID" id="ID" type="hidden" value="<?php echo $row['ID']; ?>" /> ?>Mais je crois qu'ici, il doit me manquer quelque chose (qui m'échappe complètement). A force de vérifier, corriger, tester et retester je suis paumé !
Merci en tous cas pour votre aide. (Déjà que j'ai été obligé de créer 3 users (Ajout, Modif et Delete car je ne savais pas comment faire pour choisir la bonne requete sur une même page)...
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
2 janv. 2011 à 18:47
2 janv. 2011 à 18:47
Je reprends ce qu'a dit facegeek : faire passer l'ID par post.
C'est à dire que le champ "action" du formulaire doit plutôt ressembler à ceci :
Et ce pour assurer la passation du GET.
C'est à dire que le champ "action" du formulaire doit plutôt ressembler à ceci :
<php echo '<form name="Modif" id="Modif" action="Formulaire_Modifier.php?ID="'.$_GET['ID'].'" method="GET" />?>
Et ce pour assurer la passation du GET.
txiki
Messages postés
6596
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
22 février 2024
518
2 janv. 2011 à 20:13
2 janv. 2011 à 20:13
Salut Mihawk,
Mais mon FORM ne sert uniquement qu'a afficher le bouton pour avoir le formulaire de modification
C'est sur la liste des liens que ça bloque et voici le code entier (affichage + le bouton Modifier).
Je suis complètement perdu. Au secouuuuurs !
Le bonheur est la seule chose que l'on peut donner sans l'avoir.
Mais mon FORM ne sert uniquement qu'a afficher le bouton pour avoir le formulaire de modification
<form name="Presse" id="Presse" action="Traitement_Agenda_Modifier.php" onSubmit="return verif(this)" method="POST">En validant ça va écrire dans la table. J'ai bien essayé avec ton code mais c'est hélas pareil.
C'est sur la liste des liens que ça bloque et voici le code entier (affichage + le bouton Modifier).
<?php // On recupere la variable "id" correspondant au prénom choisi //ce script est appelé par un click sur le lien n'est ce pas, alors l'id est passé par l'URL donc en GET $id=$_GET['ID']; // on récupère la requete par la variable $_GET // on prends les infos de connexion sur le fichier Fonctions_Agenda.php require 'Fonctions_Agenda.php'; // connection à la DB $link = mysql_pconnect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base mysql_select_db($db) or die ('Impossible de se connecter à la base'); // sélection de la table // requête SQL qui affiche les infos de la fiche correspondante au lien cliqué $select = "SELECT Titre, Stitre1, Stitre, Info FROM agenda WHERE ID='$id'"; // On selectionne seulement la ligne qui correspond à l'événement choisi $query = mysql_query($select) or die ('Erreur : '.mysql_error() ); $row= mysql_fetch_array($query); // mysql_fetch_array génère un tableau correspondant a la ligne selectionnée de la BDD // on affiche la fiche dans un tableau généré, dans le div id="global" comme le reste des pages. echo '<table width="100%" align="center" border="0" cellspacing="0" cellpadding="6">'; // on affiche un tableau echo '<tr><td><h1>'.$row["Titre"].'</h1></td></tr>'; // affiche la variable Titre echo '<tr><td><center><i>'.$row["Stitre1"].'</i></center></td></tr>'; // affiche la variable Stitre1 echo '<tr><td><center><i>'.$row["Stitre"].'</i></center></td></tr>'; // affiche la variable Stitre echo '<tr><td><p>'.$row["Info"].'</p></td></tr>'; // affiche la variable Info echo '</table>'; // on ferme le tableau mysql_close(); ?> <!-- Le bouton SUBMIT doit obligatoirement se trouver à l'intérieur des balises FORM --> <?php echo '<form name="Modif" id="Modif" action="Formulaire_Modifier.php?ID="'.$_GET['ID'].'" method="GET" />'; echo '<p align="center"><input type="submit" value="Modifier"/></p>'; echo '</form>'; ?>
Je suis complètement perdu. Au secouuuuurs !
Le bonheur est la seule chose que l'on peut donner sans l'avoir.