PHP: id non transmis ?
Résolu
txiki
Messages postés
6596
Date d'inscription
Statut
Contributeur
Dernière intervention
-
txiki Messages postés 6596 Date d'inscription Statut Contributeur Dernière intervention -
txiki Messages postés 6596 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Bonjour,
Je bataille dur depuis plusieurs jours et là je n'en peux plus. Si vous allez sur: http://editionsgracianne.free.fr/Agenda/Formulaire.php (Modifier, user= test et pass= toto) je fais un récap de l'article à modifier mais au moment d'arriver au formulaire (qui est sensé afficher cet article à modifier) je n'ai plus rien et pour cause. L'id est absent dans l'url.
Quelqu'un a-t-il une solution ? Voici une partie du code de ce formulaire:
Merci beaucoup d'avance car j'ai bousillé les fêtes à cause de ça !
Bonne année à tous !.
Bonjour,
Je bataille dur depuis plusieurs jours et là je n'en peux plus. Si vous allez sur: http://editionsgracianne.free.fr/Agenda/Formulaire.php (Modifier, user= test et pass= toto) je fais un récap de l'article à modifier mais au moment d'arriver au formulaire (qui est sensé afficher cet article à modifier) je n'ai plus rien et pour cause. L'id est absent dans l'url.
Quelqu'un a-t-il une solution ? Voici une partie du code de ce formulaire:
<?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 * 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 ?> <div id="globalmodif" style="position:absolute; visibility:visible; z-index:1;"> <table width="100%" border="0" cellspacing="0" cellpadding="6"> <tr> <td><h2 align="center"> Modifier cet événement dans l'agenda. </h2> <!-- Pour que les champs obligatoires soient controlés, ils doivent être vierges (pas de value) --> <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']; ?>" /> <i>(Les champs marqués <span class="red">*</span> sont obligatoires et ne doivent excéder 256 caractères) </i></p> <p align="center"><label for="Lien">Texte pour le lien</label> : <span class="red">*</span> <input name="Lien" id="Lien" tabindex="10" type="text" value="<?php echo $row['Lien']; ?>" size="100" maxlength="255" /></p> <p align="center"><label for="Source">Source du texte</label> : <input name="Source" id="Source" tabindex="20" type="text" value="<?php echo $row['Source']; ?>" size="100" maxlength="255" /></p> <p>En gras, ce qui devrait venir de la table (si je n'ai pas fait de boulette).
Merci beaucoup d'avance car j'ai bousillé les fêtes à cause de ça !
Bonne année à tous !.
A voir également:
- PHP: id non transmis ?
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
4 réponses
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 !
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.
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)...
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.
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.