InnerHTML et Formulaire

Fermé
Thuggah Messages postés 15 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 4 octobre 2016 - 29 avril 2010 à 22:12
 isnan - 2 mai 2010 à 04:05
Bonjour j'ai un veritable souci, merci de vous imaginer la sueur qui me coule sur le front depuis quelque jours.
j'aimerais si possible utiliser innerHTML pour afficher un formulaire plutôt qu'un texte lorsque l'on clique sur un bouton.

je ne sais pas si inner ne peut que contenir du html pur simple et non du php avec des input d'un formulaire

4 réponses

avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
29 avril 2010 à 23:26
Perso, je masquerais le formulaire en CSS et au clique du bouton, je l'afficherais en Javascript ...
1
Thuggah Messages postés 15 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 4 octobre 2016 6
Modifié par Thuggah le 1/05/2010 à 11:34
Merci déjà cè sur mais j'utilise une balise <div> dans laquelle je voudrais afficher le formulaire en question .essaie si possible de me donner l'astuce donc ou le code en question. ou si possible me donner une syntaxe qui prendrais en compte le php en dehors du innerHTML
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 avril 2010 à 11:44
en complément:

je ne sais pas si inner ne peut que contenir du html pur simple et non du php avec des input d'un formulaire

inner HTML ne doit pas contenir de php car il charge le contenu directement dans la page dans le navigateur, hors le php s'exécute coté serveur, donc la partie de code en php ne servira à rien
par contre tu peux y mettre un formulaire en html
0
je ne sais pas si inner ne peut que contenir du html pur simple et non du php avec des input d'un formulaire

Par contre tu peux mettre dans un innerHTML le code d'un input.

champ.innerHTML = "<input type='text' name='' value=''/>";


Ça ca marche très bien.
0
Thuggah Messages postés 15 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 4 octobre 2016 6
1 mai 2010 à 11:28
en effet avec les <input> simple cela marche parfaitement mè le reel probleme est qu'il faut que je puisse charger des info depuis ma base dans une balise <select>,et la j'utilise le php d'ou la présence du code php

ya t'il une autre syntaxe en dehors de innerHTML qui prendrais en compte le php Alain??
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
1 mai 2010 à 12:00
probleme est qu'il faut que je puisse charger des info depuis ma base dans une balise <select>

alors il faut que tu utilises AJAX

par une requette javascript /ajax ça appelle un script php sur le serveur qui va lire dans ta BDD et renvoyer une liste <select avec les valeurs lues

et a la réponse de la requette, inner.html va mettre cette liste dans la page et tout ça sans rechargement de la page
0
Thuggah Messages postés 15 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 4 octobre 2016 6
1 mai 2010 à 18:21
Je maitrise très bien les requêtes sur des BD en php mais pas en java script. je ferais certe des recherches mais mon truc est que je suis un peu pris par le temps.si ta un exemple succint ne manque pas de me l'envoyer.
0
je ne sais pas si inner ne peut que contenir du html pur simple et non du php avec des input d'un formulaire

euh un formulaire c'est du html pur et simple: <form> = balise html et
<input /> aussi, ce qui peut ne pas l'être c'est le traitement des données envoyées ou le contrôle des champs lors du submit .


Je maitrise très bien les requêtes sur des BD en php mais pas en java script.

Grosse erreur, il n'y a pas de requête sur une base de donnée en javascript. En effet javascript s'exécute sur l'ordinateur du client(l'internaute) UNIQUEMENT, ma base étant situé sur le serveur c'est donc impossible.
les requêtes sur des BD en php sont plutôt des requêtes en SQL 'par' php, c'est d'ailleurs pour cela qu'il faut commencer par ouvrir une connexion avec la base qui elle sait parler qu'en SQL.

Un exemple succinct de comment mettre une variable php(ayant été récupéré par la requête SQL) dans la liste déroulante d'un formulaire donc(plus simple qu'Ajax si tu n'est pas à l'aise avec cette technologie assez pointue et peu fiable sur IE), mais comme le dit Alain42, tu ne feras pas tout sans utiliser Ajax, le mieux alors est d'utiliser une autre page envoyant les données (POST ou GET) nécessaires au tri des options du select:
<?php 
//--------------------la connection étant établie précédemment avec //-------------mysql_connect() 

//---------------------------------- 
print_r($table_des_options);/*<------ en admettant que cette variable est une table contenant la liste des options possibles dans le select(récupéréss via un mysql_query() et un fetch_array() comme tu fait d'habitude// effacer le print_r qui  est une vérification de la recupération des champs sur la BD. 
*/ 
echo '<form>'; 
echo "<select name='moncritere'>"; 
for($i=0; $i<count($table_des_options); $i+++) 
{ 

/**************************************************************
*                                                                                                                         *


  echp "<option value=\"".$table_des_options[$i]."\">".$table_des_options[$i]; 
  echo "</select>"; 


*                                                                                                                          *
**************************************************************/

// dans la boucle for il s'affichera donc bien le html correspondant  
/* <option value='valeur1'>valeur1</option><option value='valeur2'>valeur2</option> etc... */

} 
echo "</select>"; 

echo "<input type='submit' value='Envoyer'/>"; 

echo '</form>' 


?>
0