11548 sujets

JavaScript, DOM et API Web HTML5

Bonsoir,

Voici le problème qui m'occupe depuis 2jours / 2nuits? (je ne sais plus!)

J'ai un formulaire que voici :

<form action="<?php echo $url; ?>" method="get" name="myform">
<input type="text" name="text_search" value="<?php echo $text_search; ?>" onblur="if(this.value=='') this.value='<?php echo $text_search; ?>';" onfocus="if(this.value=='<?php echo $text_search; ?>') this.value='';"/>
<input type="hidden" name="q" value="?!?!?!?!" />
<input type="submit" value="bloublou" />
</form>


Et je souhaite attribuer à "q" la même valeur que "text_search"

Est-ce si compliqué?

J'ai essayé entre autres choses :

Récupération de la valeur en javascript :

<script type="text/javascript">
var valeur = document.forms['myform'].elements['text_search'].value;
document.write(valeur);
</script>


ça fonctionne et je peux même l'afficher en php:
<?php
$valeur = "moins cher "."<script>document.write(valeur)</script>";
echo $valeur;
?>


j'obtiens bien "ouf" si la valeur en question est "ouf"

mais quand je veux la transmettre par mon formulaire comme ceci :

<input type="hidden" name="q" value=" <?php echo $valeur; ?> " />



PATATRAS

voici l'url résultante de la transmission du formulaire :

http://blablabla&q=<script>document.write(valeur)%3B<%2Fscript>



au lieu de l'espérée :

http://blablabla&q=ouf



Qui peut m'aider? Smiley prie et bénéficier de ma reconnaissance infinie!

PS: toute solution est bienvenue avec ou sans javascript mais je n'ai rien trouvé de plus convaincant.
Modifié par drswing (09 Jan 2009 - 08:55)
Hello drswing et bienvenue Smiley smile ,

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace après le crochet ouvrant).

upload/1-code.gif

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne

Bonne continuation Smiley smile
drswing a écrit :
Qui peut m'aider? Smiley prie et bénéficier de ma reconnaissance infinie!

Moi j'aime bien la reconnaissance infinie.
Donc, voilà (non pas comment il faut faire mais comment je ferais)

1/ un id="trucmachin" et un onchange=pipo() sur l'input text_search.
2/ un id="trucmuche" sur l'input q.
3/ un script pipo qui :

document.getElementById("trucmuche").value=document.getElementById("trucmachin").value=

Voilà, enfin... cela devrait le faire.
Ingénieux, je gagne une étape et c'est bcp plus propre
merci beaucoup
toutefois,
la valeur Q est définie mais... elle n'est pas transmise par le formulaire
même essayé avec un onsubmit(pipo).


Je ne pense pas avoir fait d'erreur, voici ton code impléménté :

<form action="<?php echo $url; ?>" method="get" name="myform">
<input type="text" id="trucmachin" name="text_search" value="<?php echo $text_search; ?>" onblur="if(this.value=='') this.value='<?php echo $text_search; ?>';" onfocus="if(this.value=='<?php echo $text_search; ?>') this.value='';"/>
<input type="hidden" id="trucmuche" name="q" valeur="" />

<script type="text/javascript">document.getElementById("trucmuche").value = document.getElementById("trucmachin").value;</script>

<input type="submit" value="<?php echo _SEARCH_TITLE; ?>"/>
</form>

Modifié par drswing (09 Jan 2009 - 14:56)
Pardonne-moi mais je n'y connais rien quand le js est mélangé dans l'html.
Ce n'est pas de la mauvaise volonté mais... j'y vois rien !

Cela dit, je ne vois pas comment, dans ton implémentation, le code est déclenché sur onchange de trucmachin !

En clair, moi, ce que je fais :
Pour le html dans le fichier mapage.htm ou php :

dans le head :
<script type="text/javascript" src="pipo.js"></script>
dans le body
<input type="text" id="trucmachin" name="text_search" onchange="pipo();" value=......
<input type="hidden" id="trucmuche" name="q" value= la même chose que ci-dessus...

Et pour le js dans pipo.js

function pipo(){
    document.getElementById("trucmuche").value=document.getElementById("trucmachin").value;}

Modifié par aCOSwt (09 Jan 2009 - 15:37)
Oh et bien puisque c'est comme ça,
je préfère de loin mettre ceci sur le compte de la fatigue plutôt que sur celui de ma bêtise!

effectivement dans toutes mes manips, le onchange(pipo) s'était fait la malle!

Cela fonctionne logiquement très bien et je te remercie grandement de m'avoir aidé Smiley clapclap je vais pouvoir Smiley zzzz sur mes deux oreilles! façon de parler car j'ai encore quelques bricoles à accomplir dans ce monde cruel du codage! Smiley cligne