2010-02-10 6 views
0

J'ai créé un simple formulaire de commande pour une utilisation avec un site Web mobile:Quel est le moyen le PLUS FACILE d'ajouter des données de formulaire à une URL?

<form action="" method="GET"> 
     First Name:<br /> 
     <input type="text" name="firstname" /> 
     <br /><hr /> 
     Last Name:<br /> 
     <input type="text" name="lastname" /> 
     <br /><hr /> 
     Phone Number:<br /> 
     <input type="text" name="phonenumber" /> 
     <br /><hr /> 
     Address:<br /> 
     <input type="text" name="address" /> 
     <br /><hr /> 
     Town:<br /> 
     <input type="text" name="town" /> 
     <br /><hr /> 
     County:<br /> 
     <input type="text" name="county" /> 
     <br /><hr /> 
     Postcode:<br /> 
     <input type="text" name="postcode" /> 
     <br /><hr /> 
     Email:<br /> 
     <input type="text" name="email" /> 
     <br /><hr /> 
     <input type="submit" value="Submit" /> 
     </form> 

Les besoins d'information créé pour passer dans une URL uniquement. L'URL de base est donnée, dans ce cas, domain.com. L'URL qui est créée et naviguée vers doit ressembler à: domain.com/p=firstname+lastname+123+456+7890+123+address+street+etc .....

Parce que c'est pour un mobile site, JavaScript ne peut pas être utilisé. PHP serait idéal car j'ai quelques connaissances, mais d'autres solutions peuvent être possibles.

Une conseils sur comment démarrer ou quoi rechercher?

Répondre

1

Anders,

Si vous besoin de poster cela à un autre site, vous devez utiliser une redirection.

Voici les étapes nécessaires ->

  1. Postez le formulaire ci-dessus pour votre propre page PHP
  2. Sur cette page, faire une redirection vers la page que vous devez poster à la chaîne URL étant format dont vous avez besoin avec vos variables insérées.

Pour faire une redirection en PHP:

header('Location: http://www.yoursite.com/new_page.html') 
+0

Oui exactement, c'est comme ça que vous le feriez. – chamiltongt

+0

Assurez-vous simplement que l'appel header() arrive en haut de votre fichier php après avoir lu les variables du formulaire. – chamiltongt

0

Si c'est un serveur Apache avec lequel vous travaillez, vous pouvez utiliser mod_rewrite pour regex-craft l'URL à tout ce que vous voulez.

+0

ou IIS Rewrite, à l'autre bout du spectre. –

+0

Raisonnable, mais je ne suis pas sûr du serveur actuellement. –

0

Utilisez method="GET" (plutôt que POST) pour que le navigateur transmette des données de formulaire dans le cadre de l'URL (au format action?fieldName=value&fieldName2=value2).

+0

Donc dans ma situation, en utilisant action = "http://domain.com?p=firstname=value& Certains de cela est logique, mais il me semble que cela créerait une URL qui va prénom = john + lastname = smith plutôt que john + smith Malheureusement, le format exact de l'URL transmise est important –

+0

Correct, vous vous retrouveriez avec prénom = john & lastname = smith.Il n'y a aucun moyen de changer cela.Si vous avez des exigences plus strictes, vous ne serez pas être capable d'utiliser GET seul.Vous devrez faire d'autres trucs (comme soumettre le formulaire à une page PHP qui reformate les données et envoie la requête réelle, correctement formatée). – SoapBox

0

Avez-vous besoin d'avoir ce format d'URL exact? Ne pouvez-vous pas simplement changer la méthode de formulaire en GET et utiliser le format de chaîne de requête standard? Si vous voulez vraiment ce format, vous pouvez rediriger sur le serveur. Franchement, je pense que la chaîne de requête régulière est meilleure (et si vous ajoutez un champ?)

+0

On m'a dit que j'avais besoin de ça format par le site Web auquel je fais référence Que voulez-vous dire "si j'ajoute un champ"? –

+0

Dites un champ de prénom est ajouté.Ensuite, le nouveau format attendu sera probablement domain.com/p=prénomname+middlename+lastname+123+456+7890+123+address+street+etc. Si le site reçoit une requête qui manque un champ, ils ne sauront pas ce qui manque, et peuvent, par exemple, interprète le nom de famille comme les données de nom de milieu. C'est pourquoi les noms de champs sont importants. –

0

Vous ne savez pas exactement ce que vous demandez, mais il semble que vous souhaitiez que le formulaire ci-dessus se soumette à une URL avec tous les les variables étant dans la chaîne d'URL. Si c'est le cas, vous devez changer la méthode pour GET. Comme pour tirer ces variables dans votre page de réception, PHP va bien. La syntaxe en PHP pour saisir get var est

$_GET["fname"]; 
+0

Bon, je comprends que GET est nécessaire, mais pour ce qui est de rassembler toutes les variables ... J'ai peur d'apprendre. –

Questions connexes