biomax Posté 16 Août 2006 Posté 16 Août 2006 Dans un script en php, j'affiche une série d'annonces, et pour chaque annonce je crée un formulaire qui permet de modifier une des ses caractéristiques if($caract == "oui") {echo "<form ACTION='XXXphp?action=retirer&id=$id' METHOD='POST'><input type='submit' NAME='accueil' VALUE='retirer'></form>" ; } if($caract == "non") {echo "<form ACTION='XXXX.php?action=afficher&id=$id' METHOD='POST'><input type='submit' NAME='accueil' VALUE='afficher'></form>" ; Le problème est que le fichier destination (qui est le même que celui d'origine) ne récupère et n'affiche pas les valeurs des variables "action" et "id". Il n'est par conséquent pas capable d'executer la requète MySQL. Merci de m'aider.
Dan Posté 16 Août 2006 Posté 16 Août 2006 C'est que php est configuré pour ne pas permettre les variables globales... Remplace if($action) par if($_POST['action']) et fais de même pour la variable id, à remplacer par $_POST['id'] Dan PS: je vois que ces variables sont transmises par la méthode GET alors que ton formulaire utilise la méthode POST. Essaie de changer la méthode du formulaire en GET, ou utilise $_GET['action']
v4np13 Posté 16 Août 2006 Posté 16 Août 2006 Crée un fichier PHP operations.php par exemple et tu passes tes données "action" et "id" dans des champs cachés (type="hidden")
vincedo Posté 16 Août 2006 Posté 16 Août 2006 Crée un fichier PHP operations.php par exemple et tu passes tes données "action" et "id" dans des champs cachés (type="hidden") +1 C'est effectivement comme ça qu'il faut passer les paramètres, plutôt que dans l' "action" du form.
biomax Posté 16 Août 2006 Auteur Posté 16 Août 2006 Bon alors je rajoute le script en début de fichier qui est censé récupérer les valeurs des variables "action" et "id" : if ($action == "afficher") { $instruction="UPDATE ad SET accueil = 'oui' WHERE siteid = $id"; $res=mysql($datab, $instruction); } if ($action == "retirer") { $instruction="UPDATE ad SET accueil = 'non' WHERE siteid = $id"; $res=mysql($datab, $instruction); } Pouvez-vous SVP me dire ce que je dois exactement écrire dans le formulaire, et dans ce petit script, parce que là je galère... MERCI BEAUCOUP En plus sur une autre partie de mon site j'utilise la même méthode et cela fonctionne... Ici c'est une modification d'un script de petites annonces, donc je comprendspa spourquoi cela ne fonctionne pas içi...
fredrick Posté 16 Août 2006 Posté 16 Août 2006 Vous dites qu'il est préférable de passer des données de page en page en utilisant "hidden" plutôt qu'en les faisant passer par l'URL ? Il est donc préférable de mettre ceci, c'est ça ? <input type="hidden" name="id" value="$id"><input type="hidden" name="action" value="retirer"> et ensuite de les récupérer grâce à : $id=$_POST['id'];$action=$_POST['action']; N'est-il pas préférable de les passer par l'URL de les récupérer par $_GET[''] et de masquer l'URL grâce aux headers afin que cela affiche www.monsite.com au lieu de www.monsite.com?id=$id&action=retirer ???
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant