bonjour,
merci mais hélas ça ne peut pas fonctionner.
en plus les champs de mon formulaire sont dynamiques (c'est l'utilisateur qui les choisi).
du coup j'ai pensé à une solution maline mais que je n'arrive pas à reproduire suite à un probleme d'encodage d'InnerHTML.
En gros voilà comment je procédè :
- 1 | j'ai encapsulé le FORM html entre des balises SPAN comme ça :
1 2 3 4 5 6
| <SPAN id="html_div_search">
<form class="form-catalog" id="NOTICE_author_query" name="NOTICE_author_query" method="post" action="./catalog.php?categ=search&mode=0" onsubmit="return test_form(this)">
<h3>Auteur/titre</h3>
..etc
</form>
</SPAN> |
- 2 ensuite j'ai rajouté dans le formulaire un champ caché-hidden :
1 2 3 4 5
| <SPAN id="html_div_search">
<form ...
<input name="html_search" value="" type="hidden">
</form>
</SPAN> |
-3 quand j'appuyerai sur le bouton recherche je vais copier le contenu html (donc avec innerHTML) dans ce champ caché de manière à stocker le formulaire HTML personnalisé de l'utilsateur dans une variable qui sera $_POSTée. Donc dans la page des résultats, je n'aurai qu'un echo $_POST['html_search']; à ajouter pour rafficher mon formulaire successif.
Dans le bouton je mets ça :
<input class="bouton" value="Rechercher" onclick="document.NOTICE_author_query.html_search.value=document.getElementById('html_div_search').innerHTML;" type="buton">
jusque là ça marche seulement voilà le problème.
Dans le contenu mis dans le champ hidden, tous les caractères HTML sont encodés (espace, accolade,accent..) avant l'envoi au serveur. Cet encodage bizarre est fait au moment de la copie javascript .innerHTML. voilà son rendu (affichage du code source) :
<input name="html_search" value="
<form class="form-catalog" id="NOTICE_author_query" name="NOTICE_author_query" method="post" action="./catalog.php?categ=search&amp;mode=0" onsubmit="return test_form(this)">
<h3>Auteur/titre</h3>
<div class="form-contenu">
<div class="row">
<label class="etiquette" for="title_query">Titre</label>
</div>
...etc">
alors, d'où vient cette encodage javascript mystérieux ?
Partager