Balaise : Un input image en lien formulaire revoie des variables nommées X et Y?

twelve34 Messages postés 52 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 23 juillet 2009 - 8 déc. 2007 à 15:12
spipod Messages postés 23 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 17 juillet 2009 - 17 juil. 2009 à 10:50
Voilà j'ai une page qui est censée gérer l'effacement d'un contenu d'une base. Bref, sur cette page, j'ai un lien en input="image" qui est censé renvoyer des variables en GET. Mais en cliquant sur ce lien, au lieu de renvoyer les bonnes variables, il me renvoie des variables nommées respectivement X &Y, de valeurs différentes. Voici la synthaxe du lien :

echo '<form></form>';

Par exemple, au lieu de renvoyer :

?action=supprimer&categorie=profil&reference=1197066484&motdepasse=zorro

Il renvoie :

?x=12&y=13

Voilà, donc si quelqu'un sait d'où ça vient je suis preneur! (PS : Je sais qu'il y a d'autres solutions pour renvoyer mes variables, mais moi je veux le faire comme ça, il n'y a pas de raison que ça marche pas, alors ne me proposez pas autre chose. Merci)

14 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
8 déc. 2007 à 16:08
Salut,

"(PS : Je sais qu'il y a d'autres solutions pour renvoyer mes variables, mais moi je veux le faire comme ça, il n'y a pas de raison que ça marche pas, alors ne me proposez pas autre chose. Merci)"

LoL. Je comprends pas... Tu veux absolument faire comment ? Avec un formulaire, ou avec un événement Javascript ?
Parce qu'ici, ton formulaire ne sert absolument à rien. Il n'a même pas l'attribut obligatoire "action".
Si c'est pour utiliser un événement onclick (en mminuscules, pour respecter le standard), tu peux le faire sans formulaire, et sans input... Une simple image ferait la même chose.

Donc si tout ce que tu veux c'est récupérer des variables via la superglobale $_GET, tu peux te contenter d'un lien :


Tu traiteras tes données de la même manière et tu évites de compliquer tout.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
8 déc. 2007 à 16:14
Hello,

de plus, un input type="image" soumet le formulaire sur un click...ton onclick est donc forcément annulé par le comportement normal de ce type de champ. Ta page est soumise! Ce n'est pas ton javascript qui est exécuté.
0
twelve34 Messages postés 52 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 23 juillet 2009
8 déc. 2007 à 16:23
Salut et merci pour votre réactivité.

Donc si tout ce que tu veux c'est récupérer des variables via la superglobale $_GET, tu peux te contenter d'un lien :

Je sais que je peux faire comme ça. Mais je voudrais comprendre pourquoi ça ne passe pas avec la technique évoquée alors que je la pratique déjà sur d'autres pages et que ça fonctionne très bien. J'ai essayé de reprendre le code où ça fonctionnait très bien en changeant les paramètres, mais rien n'y fait, c'est le monde à l'envers...

Malalam : Je ne vois pas en quoi ça ne peut pas marcher alors qu'un code comme ça fonctionnerai très bien aussi (code tiré d'une recherche google) :

<FORM>
       <INPUT TYPE= "BUTTON" VALUE="Home Page"
        ONCLICK ="window.location.href='http://www.ace.uwaterloo.ca'">
 </FORM>

Si vous voulez, je sais que je peux simplifier, mais je voudrais juste comprendre pour quoi ça fonctionne pas, il n'y a aucune raison que mes variables ne soient pas renvoyées...
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
8 déc. 2007 à 16:35
Je sais pas où t'as pêché ce bout de code, mais il est vraiment... euh... non, je dirai pas, je veux pas être censuré.

1/ la balise form ne s'utilise pas sans l'attribut action => c'est un attribut OBLIGATOIRE
2/ les balises ainsi que les attributs doivent s'écrire en minuscule
3/ comme l'a dit malalam, le onclick ne sert à rien ici, puisque c'est l'action du input qui est exécutée
4/ cliquer sur un input de type image renvoie très probablement les coordonnées du curseur sur l'image au moment du click, d'ou le x et le y

Contente toi d'un simple lien : c'est tout aussi efficace, ça fonctionne, ça n'utilise pas javascript (fonctionne donc même si JS est désactivé sur le navigateur).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
twelve34 Messages postés 52 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 23 juillet 2009
8 déc. 2007 à 16:39
Merci pour tes conseils, mais comment expliques-tu que ça fonctionne avec ce code alors?

<form></form>
0
twelve34 Messages postés 52 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 23 juillet 2009
8 déc. 2007 à 16:41
PS : ne fais pas gaffe aux variables type PHP, j'ai juste enlevé le ECHO, ça donnait ça en fait à la base :

echo '
<form></form>';
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
8 déc. 2007 à 16:42
C'est pas une image, c'est un bouton.

type="button" et pas type="image"
Le comportement des deux n'est pas le même.

Et puis même s'il marche, ça n'empêche pas que c'est crade et non conforme aux standards.
0
twelve34 Messages postés 52 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 23 juillet 2009
8 déc. 2007 à 16:43
Mince, je me trompe encore, ça donnait ça (désolé) :

echo '
<form></form>';

PS : Y'a pas une fonciton pour supprimer un message sur phpcs quand on se trompe ou quoi??
0
twelve34 Messages postés 52 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 23 juillet 2009
8 déc. 2007 à 16:45
Bon, ok, je vais me résigner, mais alors je pige pas pourquoi sur d'autres pages que j'ai fait ça fonctionne parfaitement avec un type image... Merci pour tes conseils.
0
twelve34 Messages postés 52 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 23 juillet 2009
8 déc. 2007 à 17:10
J'm'exuse de remettre ça sur le tapis, mais pourquoi ce code ne marche pas non plus?

echo '
<form action="?action=supprimer&categorie='.$categorie.'&reference='.$reference.'&motdepasse='.$motdepasse.'" method="get"></form>';
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
8 déc. 2007 à 17:15
Il y a confusion :
input type="button" est simplement un bouton. Il n'a pas de comportement par défaut. Donc, un onclick est pris en compte.
input type="image" et input type="submit" ONT un comportement par défaut si on clique dessus : ils soumettent la page! Donc un onclick n'aura pas l'effet escompté en général.
Je crois qu'il serait bon de revoir les bases du html.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
8 déc. 2007 à 17:18
Peut-être parce que sur IE un input type="image" soumet bien la page...mais ne transfère pas les données.
Mais faut m'expliquer pourquoi tu mets ça dans un formulaire si c'est juste pour passer tes variables dans l'url de l'action du formulaire...le code de Neige est plus cohérent dans ce cas là.
0
niceman23 Messages postés 36 Date d'inscription vendredi 6 janvier 2006 Statut Membre Dernière intervention 27 février 2009
24 févr. 2008 à 22:50
bonjour j'ai reelement un probleme , voici mon probleme ...


 


 echo "\";
 echo \"----
<form action='search_results.php' method='$_GET[fatherID]'>";
 echo "&nbsp;";
 echo "<select name='fatherID'>";
 echo "<option value='0'>-- Toutes catégories --</option>\n";
 while( $cat = mysql_fetch_assoc($result) ){
  echo "<option value='".$cat['ID']."'>";
  echo $cat['Title'];
  echo "</option>";
 }
 echo "</select>";
 echo "&nbsp;";
    echo "";
 echo "";
 echo ", </form>
";

Mon probleme est que je veux un bouton image ....
Quand j'utilise type=submit , il fonctionne numero 1 ....
Quand je veux utiliser le type=image bien il me donne un message d'erreur ...
Il passe pas le get .... On peut m'aidé . Pour que j'aille un bouton image qui fonctionne avec mon get . Merci avec le submit fonctionne numero 1
0
spipod Messages postés 23 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 17 juillet 2009
17 juil. 2009 à 10:50
Ton erreur vient de la balise FORM qui n'a pas d'ACTION
ex : <FORM ACTION="index.php">
cela te donne le dernier href effectué


SPIPOD
0
Rejoignez-nous