Correction d'un script avec 2 boutons submit SVP
J'ai passé plus de 2 H sur Internet pour essayer de trouver un exemple pratique mais nada. Je me vois donc contraint de solliciter l'un de vous comme correcteur.
Mes formulaires sont plus complexes que celui ci-dessous mais cela n'a guère d'importance. J'ai une erreur dans la manière de concevoir le script et c'est là où je vous demande votre aide.
Prenons donc l'exemple : Sur 1 page, j'inscris l'identifiant d'un user, et il me renvoie, en dessous, un cadre (iframe) correctement rempli avec le nom et le prénom du user recherché. En dessous, de ces informations, j'ai 2 boutons : l'in = Modification et l'autre = Suppression. Et malheureusement, c'est là que cela foire. Je fais une (ou peut-être plusieurs) erreur mais je ne vois pas où ? Voici le script d'affichage des données et l'essai d'activation des boutons Modification ou Suppression
http://www.lephpfacile.com/wall/wall.php?id=2421
Si un bonne âme pouvait se pencher sur la correction ? D'avance merci.
Polhux
Et en changeant :
<input type="button" value="Modification" name="option">
<input type="button" value="Suppression" name="option">
Par :
<input type="submit" value="Modification" name="option">
<input type="submit" value="Suppression" name="option">
PS : le wall....
Je me permets de revenir sur la correction de ce script. Comme dit dans mon premier post, j'avais réécrit un petit exemple simplifié. Dans le script complet, j'avais bien écrit "Submit".
Mais je me permets de le recopier ci-dessous
(non, pas ici, il y a le wall pour çà, cf mon message précédent) car je l'ai un peu modifié en essayant de trouver une solution. Malheureusement, il ne veut toujours pas tourner. Il me renvoie toujours le message d'erreur echo 'Identifiant inconnu ...casse'.
Or, il connait le user_id puisque la première chose qu'il fait c'est de m'afficher les données correctes.J'offre un verre à celui qui me trouve la solution !
http://www.lephpfacile.com/wall/wall.php?id=2420
Polhux
Un petit tour vers le cours de debuggage ? un simple echo $url_id .
Si tu submit, l'id dans l'url n'est pas plus passé .. donc à priori met ton id dans un champ caché pour pouvoir l'utiliser ensuite.
Bon ensuite ton problème est mal exposé et il y a le wall ou les balises code pour montrer son code.
zebdinou pour les intimes / Blog : http://www.zebden.fr
Bonjour,
Désolé, mais quand ça ne veut pas, ça ne veut pas, même avec un rappel de la variable en "hidden" J'ai encore essayé pas une autre méthode, mais le résultat est toujours le même, à savoir aucun résultat. (voir dans le Wall, puisque maintenant je sais ce que c'est)
http://www.lephpfacile.com/wall/wall.php?id=2422
Polhux
Polhux
<input type="hidden" name="user_id" size="20" value="<?php $user_id ?>" />
<input type="hidden" name="user_id" size="20" value="<?php $user_nom ?>" />
<input type="hidden" name="user_id" size="20" value="<?php $user_prenom ?>" />
C'est quoi l'interet de ces 3 lignes de code ?
Seule la première suffit.
Bonsoir,
Ben voilà, je viens juste de trouver une des bêtises, avant de lire la réponse de la Globule (d'ailleurs, merci pour les réponses) Puisque j'utilisais un type="hidden", je pensais naïvement qu'il était inutile d'écrire value="<?php echo $user_id; ?> et que la variable ="<?php $user_id; ?>. ssuffisait.
C'est en chipotant et en essayant la méthode GET pour la suppression, que j'ai vu que mon adresse suppression.php?user_id= n'était pas bonne.
Ceci était donc déjà corrigé. Il n'empêche que je ne suis toujours pas au bout de mes peines, avec la suppression qui était la partie la plus facile. Il doit encore y avoir un bug. Dans mon programme de suppression, j'ai
if(isset($_POST['user_id']))
$user_id = $_POST['user_id'];
// TEST // echo $user_id;
$query='DELETE FROM user WHERE user_id="user_id"';
mysql_query($query) or die('Erreur SQL : '.mysql_error());
mysql_close();
echo &user_id m'affiche mon user_id correctement mais mon tuple, lui, n'est toujours pas effacé. Je commence "à approcher du but…" mais je n'y suis pas encore. J'ai beau me référer à la page 46 du cours, je ne vois pas l'erreur.
Pour ce qui est des 3 inputs dont parle La Globule, pour tester, je voulais passer les 3 variables mais voir la remarque ci-dessus avec echo. De plus, comme je l'ai écrit au début du premier post, mes formulaires sont plus longs et différents Mais si je réussis ce petit exemple, je programmerai un peu différemment, comme les 2 premiers exemples que j'avais donnés, mais au moins, je serais certain du raisonnement.
Polhux
$query='DELETE FROM user WHERE user_id="user_id"';
Il ne manque pas un $user_id la dedans ?
Rebonsoir,
Oui, je m'apprêtais à écrire pour dire que tout était OK. En effet, c'était bien là l'erreur, et tout est en ordre pour les modifs comme pour les suppressions. Ce fut pénible, mais j'y suis arrivé… avec votre aide.
Un grand merci à vous, La globule et Zebden pour celle-ci. Maintenant, pourrais-je me permettre une suggestion à La Globule s'il entre dans tes intentions de faire une mise à jour de ton cours. Il s'agit de parer à un défaut que l'on trouve dans tous les tutoriaux PHP et même dans les officiels de PHP et MySQL.
Dans tous vos exemples, vous prenez toujours des constantes (C'est TIBO qui est né le … qui aime le livre Discovery écrit par ….). Or pratiquement, même un débutant est directement confronté à un travail avec des variables. D'où beaucoup d'hésitation dans la syntaxe. Quand faut-il écrire avec', ", '"; "' (' '), (" ") et j'en passe et les différences quand on manipule des constantes et des variables. Et ce, aussi bien en PHP qu'en SQL.
Si tu avais le temps et le désir de revoir ton cours, un exemple avec une constante et une variable serait certainement très apprécié. Moi, en tout cas, c'est ce qui me fait le plus hésité. Mais attention, il s'agit bien d'une suggestion et non d'une critique. L'effort pour ce site est déjà très louable.
Polhux
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: