Form et method ... ?

Résolu/Fermé
adanir Messages postés 29 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 3 février 2007 - 9 janv. 2007 à 22:09
Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 - 12 janv. 2007 à 18:40
Bonjour,
je bidouille des ptites pages en html et là j'ai un problème avec la balise form (désolé si la réponse figure déjà dans le forum mais généralement c'est des sujets trop pointus pour moi):

ma balise est du genre
<form action="https://www.domainecarneros.com/" method=get>
et plus bas j'ai un input.
Donc comme résultat j'ai ma ptite ligne de données,un bouton et quand je clique, les données sont rajoutées à la suite de l'url mais en codées (?hl=fr&q=...) et j'aimerais qu'il rajoute les données mais non codées.
Bon je m'exprime mal probablement mais j'espère que vous avez compris. Merci d'avance pour les réponses!

9 réponses

Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 825
9 janv. 2007 à 22:42
Salut.

"non codées", c'est à dire ?
Si tu ne veux pas les voir dans l'url utilises la methode POST.

Sinon, c'est normal d'encoder dans l'url, les caractères deviennent du type application/x-www-form-urlencoded.

Tu peux peut-être jouer en utilisant l'attribut enctype sur <form>.
Essaye par exemple text/html, le type mime qui correspond à tes pages.

a plus
0
adanir Messages postés 29 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 3 février 2007
9 janv. 2007 à 23:10
Admettons que mon url dans le <form> soit "www.domaine.com/", si je tape su ma page par exemple "mot" dans mon formulaire et que je valide, il m'ouvre "www.domaine.com/?hl=fr&q=mot"alors que moi je voudrais qu'il m'ouvre "www.domaine.com/mot"
Est ce que c'est possible ou est ce qu'il encode forcément les données ?
0
eolange Messages postés 103 Date d'inscription jeudi 19 octobre 2006 Statut Membre Dernière intervention 23 avril 2009 2 > adanir Messages postés 29 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 3 février 2007
9 janv. 2007 à 23:53
www.domaine.com/mot

dans ce cas il va ouvrir le dossier "mot"

www.domaine.com?recherche=mot

$_GET['recherche'] vaut: mot

si tu veux le supprimé des url : remplace GET par POST
si tu veux pas qu'il code les é en è c'est ce qu'il ta répondu ;)
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011 > adanir Messages postés 29 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 3 février 2007
10 janv. 2007 à 10:52
Bonjour,

Pour faire ce que tu désires, il faudra passer par du javascript.
Rajoute ce code quelque part dans ta page (idéalement, dans la balise <head>)
<script language="javascript">
function goto()
{
  var nouvellePage = document.forms[0].q.value;
  document.location = "www.domaine.com/" + nouvellePage;
}
</script>
(Tu peux remplacer le "forms[0]" par la valeur name de ta balise <form>)
Ensuite, sur le bouton de validation, rajoute :
onclick="goto()"

Voilà, cela devrait faire ce que tu veux :)
0
adanir Messages postés 29 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 3 février 2007 > Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021
10 janv. 2007 à 18:24
Merci eolange d'avoir répondu mais malheureusement je n'ai pas compris ce que tu m'expliquais...

Maintenant Reivax j'ai essayé comme t'as dit mais j'ai pas réussi, j'ai dû mal comprendre qqchose, je vais recopier mes balises et tu vas me dire ce qu'il faut que je change si ça te dérange pas :

<script language="javascript">
function goto()
{
var nouvellePage = document.form[a].q.value;
document.location = "http://www.domaine/" + nouvellePage;
}
</script>
.
.
.
<form action="http://www.domaine/" name=a >
.
.
.
<input name=btnG type=submit value="je galère..." onclick="goto()">

Merci de m'aider ...
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
10 janv. 2007 à 18:29
Re-bonjour,

C'est dans ton
var nouvellePage = document.form[a].q.value;
qu'il y a une erreur.
Mets plutôt
var nouvellePage = document.a.q.value;
ou
var nouvellePage = document.forms[0].q.value; (si c'est le seul <form> de ta page)

Xavier
0
adanir Messages postés 29 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 3 février 2007
10 janv. 2007 à 22:44
Je crois que je vais abandonner cette partie là, ça marche toujours pas, la réponse en URL est toujours du type "https://www.domainecarneros.com/?hl=fr&q=mot"

En fait je suis en train de faire un genre de moteur de recherche condensé. Je suis pas doué pour en faire un tout seul et je crois que j'ai pas non plus le matériel adéquat donc j'utilise les autres moteurs de recherche. Je pars de la page de Google qui est rapide a charger de par sa simplicité, j'en ai gardé la rubrique Web(ou j'ai rajouté en plus du bouton "web", "pages francophones" et "pages fr", le bouton "Wikipédia" pour les définitions) et Images, j'ai rajouté "Sons" et "Vidéo" d'altavista, Radioblogclub, allociné, pricerunner et un comparateur de prix de carburant. L'avantage donc c'est que c'est pas juste des liens, mais que quand je tape ma recherche dans le formulaire de ma page je tombe direct sur le résultat de recherche du site correspondant. Ca évite de perdre du tps a charger les pages de chak moteur, en plus les pages principales se trouvent sur mon disque ...
Le problème là c'était avec radioblogclub, l'url doit être du type "http://radioblogclub.com/search/0/ben_harper" si c'est codé il trouve rien.
Mon moteur s'appelle Gloog lol ... nan c'est pas copié ...

Bon ben merci quand même d'avoir essayé de m'aider, c'est ma faute je suis pas assez doué !
0
Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 825
11 janv. 2007 à 19:29
Salut.

Je pense qu'en utilisant un type button pour ton input (au lieu de submit) ca marchera.

Par contre, étant donné que le formulaire nécéssite JS, il serait miex de l'afficher en JS.

a plus
0
adanir Messages postés 29 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 3 février 2007
12 janv. 2007 à 02:22
Merci sylvain, j'ai essayé ta manière en remplaçant juste mon submit en button ( c'est bien ça que je devais faire ?) mais ça ne marche toujours pas. et puis l'afficher en JS je suppose que ça veut dire javascript seulement je sais pas comment faire (ben oui ça peut sembler dingue pour certains mais je sais pas vraiment ce que c'est le javascript, on m'a jamais appris...)
0
adanir Messages postés 29 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 3 février 2007
12 janv. 2007 à 02:58
http://radioblogclub.com/search/0/
ça c'est la page sur laquelle je veux atterir et au bout de la ligne il faut que les données s'ajoutent non codées c'est a dire si je tape "bonjour" dans mon formulaire, il faut qu"il s'ajoute "bonjour" au bout de l'url et non pas "?hl=fr&q=bonjour"

Le meilleur moyen je crois c'est que vous testiez sur une ptite page que vous ferez vous même et que vous me disiez si ça marche ou pas, je suis sur que c'est moi qui me plante. Enfin moi je dis ça, c'est si vous êtes motivés pour m'aider ... On est un super héros ou on l'est pas ...

Merci d'avance ;)
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
12 janv. 2007 à 09:51
Bon allez, voilà un exemple qui marche.
Je te préviens, c'est tout bête ^^

<body>
<input type="text" id="recherche" />
<button onclick="javascript:document.location = 'http://radioblogclub.com/search/0/'+document.getElementById('recherche').value;">go !</button>
</body>
Voilà, c'est la totalité d'une page web qui fait ce que tu veux :D

Xavier
0

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

Posez votre question
Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 825
12 janv. 2007 à 12:29
Salut Xavier.

Un attribut value ne serait pas mieux pour "go !" ?
Je pense que si.
<button onclick="javascript:document.location = 'http://radioblogclub.com/search/0/'+document.getElementById('recherche').value;" value="go !">
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
12 janv. 2007 à 13:36
L'attribut value, c'est pour les <input>, non ? L'intérêt de la balise <button> c'est justement que le contenu du bouton est placé entre <button> et </button>, ce qui permet d'y mettre des images, des liens, bref n'importe quel contenu html !
Donc je ne suis pas sûr que ce soit "mieux" ;)
0
adanir Messages postés 29 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 3 février 2007
12 janv. 2007 à 14:48
vous chamaillez pas les gars vous avez tout les deux raisons, je tombe sur le bon résultat... Bon a part que sylvain ton truc c chelou ça me fait un bouton géant, mais je suppose k'on peut y ajouter du style et remodeler tout ça !

En tout cas merci beaucoup vous êtes mes deux super héros du jour, je vous félicite, je peux améliorer mon Gloog maintenant :D

Encore merci et a un de ces jours (ouais parce que je reste toujours une merde en html...) Ciao !
0
adanir Messages postés 29 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 3 février 2007
12 janv. 2007 à 15:17
Ah .. j'ai encore un mini problème ...
Ma page marche maintenant mais qd je tape ma recherche et ke je fais entrer je tombe sur "http://radioblogclub.com/search/0/?hl=fr"
et quand au lieu de taper sur entrer je clik sur le bouton "go!" là j'ai le bon résultat. Il reste encore surement qqchose a virer mais quoi ...
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
12 janv. 2007 à 15:48
Dans ta balise <form>, rajoute un onsubmit :
<form onsubmit="javascript:document.getElementById('boutonId').click(); return false;">
Avec 'boutonId' la valeur de l'attribut id de ton bouton (s'il n'y en a pas, mets-en un).
Comme ça, quand tu appuieras sur <entrée>, ça va cliquer sur le bouton et ne rien faire d'autre ^^

Xavier
0
adanir Messages postés 29 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 3 février 2007 > Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021
12 janv. 2007 à 15:57
merci xavier t'es le meilleur ;) je te laisse tranquille maintenant, va sauver d'autres brebis en perdition :D
0
Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 825
12 janv. 2007 à 18:40
Re-Bonjour à tout le monde.

Effectivement j'ai fait une erreur, je ne voulais pas parler de la balise button, mais input.
(je ne connaissais pas l'existence de button)

<input onclick="javascript:document.location='http://radioblogclub.com/search/0/'+document.getElementById('recherche').value;" value="go !"> 


Voila :-)


Une autre suggestion :
de cette facon on a beaucoup de JS dans le code html, je trouve ca plus propre de les séparer.
Voir http://www.pompage.net/traduction/separation

a plus
0