Comment supprimer x et y lors de l'envoi au format HTML avec le bouton Type d'image?
-
03-07-2019 - |
Question
J'ai créé un formulaire dans ma candidature comme suit:
<form action="/search/" method="get">
<input id="search-box" name="search" type="text" size=30 title="Search" value="" />
<input id="search-submit" type="image" alt="Search" src="/images/search-button.gif" />
</form>
Mais lorsque je soumets mon formulaire, une URL est créée comme suit:
mysitename.com/search/?search=hello&x=0&y=0
Quelqu'un peut-il me dire, s'il vous plaît, pourquoi ces x et y apparaissent dans mon URL. Sur plus de chose au lieu du bouton image si je change mon code de formulaire comme ci-dessous, alors cela fonctionne bien,
<form action="/search/" method="get">
<input id="search-box" name="search" type="text" size=30 title="Search" value="" />
<input id="search-submit" type="submit" value="Search"/>
</form>
mais j’ai besoin d’un bouton d’image pour que mon formulaire ait une belle apparence. Dites-moi comment supprimer ces paramètres x et y de l'URL.
La solution
Vous obtiendrez toujours les coordonnées de la souris pour un bouton d'envoi type = & "; image &";
Vous pouvez utiliser un bouton de type de soumission standard et lui appliquer des styles pour modifier son apparence.
<input type="submit" id="search-submit" value=""
style="background-image: url(/images/search-button.gif); border: solid 0px #000000; width: WIDTHpx; height: HEIGHTpx;" />
Autres conseils
Ce sont les coordonnées du clic de la souris. Je ne crois pas qu'il y ait moyen de les empêcher - si vous utilisez un <input type='image'>
, vous les obtenez. Pourquoi est-ce un problème? Ne pouvez-vous pas les ignorer?
Répondant au commentaire de Prashant: Digg ajoute un gestionnaire onclick
au <input>
(ou éventuellement un gestionnaire onsubmit
au formulaire) qui crée une URL de recherche soignée et redirige le navigateur vers cette URL, puis retourne false
pour empêcher le x
de soumettre le formulaire lui-même. Si vous désactivez JavaScript, vous constaterez que vous obtenez les paramètres y
et <=> dans l'URL. Clever!
document.getElementById("formid").submit = function() {
location = "/search/?search=" + encodeURIComponent( document.getElementById("search-box").value );
return false;
};
Vous pouvez simplement définir une valeur. Pour un bouton d'image, cela remplacera le comportement des coordonnées habituelles. Cela a fonctionné pour moi.
Par exemple:
<input type="image" value="submit" src="sup.png" name="supprimer" />
renverra la variable php $_POST['supprimer']
et non sa coordonnée en tant que bouton image.
J'espère que cette astuce vous aidera.