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

Signaler
Messages postés
52
Date d'inscription
mardi 1 mars 2005
Statut
Membre
Dernière intervention
23 juillet 2009
-
spipod
Messages postés
23
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
17 juillet 2009
-
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

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
15
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.
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
18
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é.
Messages postés
52
Date d'inscription
mardi 1 mars 2005
Statut
Membre
Dernière intervention
23 juillet 2009

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...
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
15
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).
Messages postés
52
Date d'inscription
mardi 1 mars 2005
Statut
Membre
Dernière intervention
23 juillet 2009

Merci pour tes conseils, mais comment expliques-tu que ça fonctionne avec ce code alors?

<form></form>
Messages postés
52
Date d'inscription
mardi 1 mars 2005
Statut
Membre
Dernière intervention
23 juillet 2009

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>';
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
15
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.
Messages postés
52
Date d'inscription
mardi 1 mars 2005
Statut
Membre
Dernière intervention
23 juillet 2009

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??
Messages postés
52
Date d'inscription
mardi 1 mars 2005
Statut
Membre
Dernière intervention
23 juillet 2009

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.
Messages postés
52
Date d'inscription
mardi 1 mars 2005
Statut
Membre
Dernière intervention
23 juillet 2009

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>';
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
18
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.
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
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à.
Messages postés
36
Date d'inscription
vendredi 6 janvier 2006
Statut
Membre
Dernière intervention
27 février 2009

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
Messages postés
23
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
17 juillet 2009

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