web-dev-qa-db-fra.com

Formulaires HTML - problème de soumission du type d'entrée avec action = URL lorsque l'URL contient index.aspx

J'ai un formulaire HTML qui tronque le paramètre d'action après le "?" marque - qui n'est pas le comportement souhaité que je cherche.

Voici un extrait HTML représentatif:

<form action="http://spufalcons.com/index.aspx?tab=gymnastics&path=gym">
    <input type="submit" value="SPU Gymnastics"/>
</form>

Dans ce cas, le bouton de soumission vous amène au paramètre " http://www.spufalcons.com/index.aspx ", ignorant ainsi le paramètre "? Tab = gymnastics & path = gym". Il semble que toutes les pages HTML et PHP référencées dans l'action = URL fonctionnent comme prévu. Ce comportement est cohérent sur tous les principaux navigateurs (IE, FF, Safari, Chrome, Opera).

Quelqu'un at-il déjà vu ce problème? Ou pouvez-vous suggérer une solution de rechange et/ou une solution de rechange compatible avec mon approche de développement Web "pure" CSS/HTML/PHP? J'ai essayé de remplacer les caractères spéciaux par des valeurs d'entité HTML sans aucun impact. Je ne veux VRAIMENT pas utiliser les boutons de soumission de style CSS en utilisant JavaScript, les fichiers PNG ou les cartes illustrées.

Environnement:

  • Serveur Web: Apache 2.2.14
  • PHP: 5.2.10
  • OS: Mac OS X 10.5.8
  • Informations sur le document HTML:
  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

TIA -- Trent

16
Trent

Placez les arguments de la requête dans des champs de saisie masqués:

<form action="http://spufalcons.com/index.aspx">
    <input type="hidden" name="tab" value="gymnastics" />
    <input type="hidden" name="path" value="gym" />
    <input type="submit" value="SPU Gymnastics"/>
</form>
28
Gumbo

Utilisez la méthode = POST puis il passera clé & valeur.

4
kunal

Cela semble être ma solution "préférée":

<form action="www.spufalcons.com/index.aspx?tab=gymnastics&path=gym" method="post">  <div>
<input type="submit" value="Gymnastics"></div>

Désolé pour le format de présentation - j'essaie toujours d'apprendre à utiliser ce forum ....

J'ai une question de suivi. En examinant ma base de données MySQL d'URL, il apparaît qu'environ 30% des URL devront utiliser cette approche wrapper post/div. Cela laisse ~ 70% qui ne peuvent pas accepter l'attribut "post". Par exemple:

<form action="http://www.google.com" method="post">
  <div>
    <input type="submit" value="Google"/>
  </div></form>

ne marche pas. Avez-vous une recommandation pour savoir comment gérer au mieux ce test de condition get/post? De mémoire, je suppose qu’en utilisant PHP pour évaluer l’existence de "?" le caractère dans l'URL peut être ma meilleure approche, bien que je ne sois pas sûr de savoir comment structurer le formulaire HTML pour y parvenir.

Je vous remercie!

1
Trent

J'ai appliqué le style CSS à un attribut HREF ancré, émulant complètement les comportements de bouton-poussoir dont j'avais besoin (survol, actif, couleur d'arrière-plan, etc.). Le balisage HTML est beaucoup plus simple. A-n-d élimine la complexité d'obtention/publication associée à l'utilisation d'une approche basée sur un formulaire.

<a class="GYM" href="http://www.spufalcons.com/index.aspx?tab=gymnastics&path=gym">Gymnastics</a>
0
Trent