Accueil > Forum > > > > PHP/Javascipt et formulaire dynamique
PHP/Javascipt et formulaire dynamique
jeudi 20 août 2009 à 18:01:56 |
PHP/Javascipt et formulaire dynamique

tiquisrd
|
Bonjour,
je suis entrain de monter une page PHP avec un formulaire qui contient, entre autre, une liste de départements (requête PHP/MySQL).
Je souhaiterais pouvoir afficher une liste des villes du département une fois celui-ci sélectionné mais sans avoir à recharger complètement le formulaire.
En cherchant par-ci par-la, j'ai trouvé 1 technique utilisant XMLHttpRequest(); et innerHTML mais il semble (http://www.siteduzero.com/tutoriel-3-4552-le-dom.html) que cette technique ne respecte pas les standards du web et soit IE propriétaire...
Il est expliqué dans ce site une autre méthode pour afficher du texte utilisant appendChild.
Cependant, je ne vois pas comment rendre cela interactif!
En effet, ce qui est ajouté par le appendChild est prévu et ne permet pas (il me semble) d'inclure une requête PHP.
Quelqu'un pourrait-il m'aider?!!
Merci
Renan
|
|
vendredi 21 août 2009 à 06:05:19 |
Re : PHP/Javascipt et formulaire dynamique

Bul3
|
Bonjour,
>>1 technique utilisant XMLHttpRequest();
ajax pour les intimes
>>et innerHTML mais il semble que cette technique
>>ne respecte pas les standards du web
>>et soit IE propriétaire...
ajax et innerHTML ne sont pas exclusif IE
et en quoi ne respecteraient-il pas les
soit-disant standards du web ?
>>une autre méthode pour afficher du texte utilisant appendChild.
oui, on peut aussi. createElement + appendChild
c'est un peu "plus compliqué", enfin, si on peut dire,
mais innerHTML risque de dégrader les performances
si de nombreux ajouts consécutifs sont faits
>>je ne vois pas comment rendre cela interactif!
je ne comprend pas bien la question ?
rien à changer sauf remplacer l'affichage
du résultat de ajax.
pour l'instant, cela doit renvoyer du html
à afficher directement ( je ne dis pas que
ce n'est pas bien, mais ajax est fait pour
retourner des informations qui seront traitées
par le javascript, pas du html ) renvoyez
les données en php nécessaires à la construction
par createElement+appendChild
>>appendChild est prévu et ne permet pas
>>d'inclure une requête PHP.
ça ne veut rien dire ça
appendChild ajoute des éléments
une requête php n'a rien à voir
la réponse du php, par contre, devrait retourner
des données pour que le javascript les traite
et pourquoi pas fasse des appendChild
un exemple de select liées ici
on construit le 2ème select non pas avec innerHTML
mais en utilisant select.length, select.options[index].text...
qu'on peut remplacer par createElement+appendChild
( si on y tient, pour le plaisir )
Cordialement [mon Site] [M'écrire] Bul 
|
|
samedi 22 août 2009 à 15:26:38 |
Re : PHP/Javascipt et formulaire dynamique

tiquisrd
|
Bonjour,
merci pour cette réponse!
J'ai passé un peu de temps à décortiquer tes exemples, et j'ai toujours quelques problèmes:
- la méthode "PHP pure" nécessite, si j'ai bien compris, de recharger la page pour mettre à jour le 2° select, ce qui est ennuyeux dans le cas d'un formulaire à plusieurs champs. Je me suis donc penché sur la méthode java...
- j'ai suivi, il me semble, les instructions et honteusement copié... mais cela ne marche toujours pas.
Le fichier correspondant au 2° select (ajax1.php) fonctionne lorsque je l'appelle directement dans le navigateur:
Code PHP :
<?php require_once('../../Connections/bd.php'); ?>
<?php
header('Content-type:text/html;charset=ISO-8859-1');
//Liste des villes du département
mysql_select_db($database_bd1, $bd1);
$code='WHERE dpt_ville="' . $_GET["tb2"] . ' " ';
$query_ville1 = "SELECT * FROM mdm_ville_cat " . $code . "ORDER BY nom_ville" ;
$ville1 = mysql_query($query_ville1, $bd1) or die(mysql_error());
$row_ville1 = mysql_fetch_assoc($ville1);
$totalRows_ville1 = mysql_num_rows($ville1);
$t="";
for ($nb=0;$nb<$totalRows_ville1;$nb++)
{
$i=mysql_result($ville1,$nb,"id_ville");
$t.="\t".$i;
}
echo $t;
?>
Le code du 1° select fonctionne aussi puisqu'il affiche bien ce que je veux voir:
Code PHP : <?php
//Liste des departements
mysql_select_db($database_bd1, $bd1);
$query_departement1 = "SELECT * FROM mdm_departement_cat ORDER BY nom_dpt ASC";
$departement1 = mysql_query($query_departement1, $bd1) or die(mysql_error());
$row_departement1 = mysql_fetch_assoc($departement1);
$totalRows_departement1 = mysql_num_rows($departement1);
?>
<select name="tb1" id="tb1" size=3 onchange='appel();'>
<?php
for ($nb=0;$nb<$totalRows_departement1;$nb++)
{ $i=mysql_result($departement1,$nb,"id_dpt");
$j=mysql_result($departement1,$nb,"nom_dpt");
echo '<option value="' . $i . '">'.$j.'</option>';
}
?></select>
<select name="tb2" id="tb2" size=3></select>
Pourtant, lorsque je clique sur un numéro, rien ne se passe...
La fonction est après mise à jour avec mes variables:
Code Javascript : <script type="text/javascript">
function xmlhttp()
{ var x;
try { x = new ActiveXObject("Microsoft.XMLHTTP"); }
catch (e) { try { x = new ActiveXObject("Msxml2.XMLHTTP"); }
catch (e) { try { x = new XMLHttpRequest(); }
catch (e) { x=false; }
}
}
return x;
}
function appel()
{ var xml = xmlhttp();
if(!xml)
{ alert("XmlHttpRequest non supporté"); }
else { xml.onreadystatechange = function()
{ if(xml.readyState==4)
{ var opt=xml.responseText.split("\t");
tb2.length=0;
for ( var n=1;n<opt.length;n++ )
{ tb2.length++;
tb2.options[tb2.length-1].text=opt[n];
}
}
}
xml.open("GET", "./javascript/ajax1.php?tb2="+tb1.options[tb1.selectedIndex].text, true);
xml.send(null);
}
}
</script>
Aurais-tu une idée??
Merci!
Renan
|
|
samedi 22 août 2009 à 15:52:49 |
Re : PHP/Javascipt et formulaire dynamique
|
samedi 22 août 2009 à 20:00:35 |
Re : PHP/Javascipt et formulaire dynamique

tiquisrd
|
J'ai installé FireBug! c'est vraiment très utile!! Merci!
Mais malheureusement, je ne comprends rien au Javascript...
Pourrais-tu me dire ce qui cloche quand on a :
tb1 is not defined
xml.open("GET", "./jav...options[tb1.selectedIndex].text, true);\n
pourtant la table est définie juste après le script, cf le code collé au dessus!
Merci!
|
|
dimanche 23 août 2009 à 10:40:58 |
Re : PHP/Javascipt et formulaire dynamique

Bul3
|
>> xml.open("GET", "./javascript/ajax1.php?tb2="+tb1.options[tb1.selectedIndex].text, true);
tel que c'est fait là, ça appelle le php
"./javascript/ajax1.php"
( donc dans le répertoire où l'on est, dans
le sous-répertoire "javascript", le php "ajax1.php" )
tb1, c'est le "1er" select
qui donc doit être de la forme <select name="tb1" id="tb1" ...>
ce serait mieux, d'ailleurs, de faire
var t1=document.getElementById("tb1");
xml.open("GET", "./javascript/ajax1.php?tb2="+t1.options[t1.selectedIndex].text, true);
>>pourtant la table est définie juste après le script,
ah... vous avez oublié que le html/javascript,php...
sont des langages interprétées ?
les lignes sont exécutées dans l'ordre où elles
se présentent !
donc cet ordre doit être donné après le select
>>je ne comprends rien au Javascript...
ben.... si vous voulez utiliser, il faudrait
vous y mettre ! non ?
entre nous, le javascript est toujours facultatif,
on peut toujours s'en passer, pourquoi vouloir
utiliser si on ne connait pas ?

|
|
Cette discussion est classée dans : dynamique, php, formulaire, liste, javascipt
Répondre à ce message
Sujets en rapport avec ce message
Creation liste dynamique php [ par houloul1 ]
Bonjour à tous ,et merci d'avoir pris le temps de lire ce message.Mon souci est le suivant :je voudrai qu'apres avoir saisi un code postal cela affich
formulaire dynamique [ par refkaben ]
Bonjour et meilleurs voeux pour tout monde. Je veux faire un formulaire dont les champs s'ajoute en cliquant sur un bouton.J'ai créé une fonction en j
Formulaire et frame [ par abcxtreme ]
Bonjour à tous, J'ai le sousci suivant : J'ai un index.php qui lance deux fichiers .php 1 - contient sous forme de liste le contenu succint d'une ta
Checkbox et formulaire dynamique [ par petitelarve ]
bonjour, Je cherche un moyen d'afficher des liste et des textearea suite au check sur une checkbox.Par exemble , si on click sur la checkbox Auteur,
Liste déroulante dynamique PHP/AJAX [ par Vins974 ]
Bonjour à tous !!! J'ai besoin de votre aide svp .. Je crée un site , et j'ai besoin d'insérer 3 listes déroulantes dynamiques. Je m'explique <img sr
Formulaire dynamique [ par zebu238 ]
Bonjour à tous ,et merci d'avoir pris le temps de lire ce message.Mon souci est le suivant :je voudrai qu'apres avoir saisi un code postal cela affich
JAVASCRIPT ET PHP [ par daris ]
Bonjour j'ai un code javascript qui returne une variable determination et je voudrai recuperer determination mais en php dans la même page.Merci d'av
liste de selection [ par amenesca ]
Bonjour à tous, Mon formulaire (en php) contient des champs de texte à remplir ainsi qu'une liste de sélection.je voulais changer la deuxième partie d
Session, javascript, php [ par nico1214 ]
Bonjour,Je ne sais pas si je suis dans le bon thème...Je voudrais savoir s'il est possible de "retenir" une variable et sa valeur en javascript. En ph
Aide 3eme liste dynamique ??? [ par morpheus22170 ]
bonjour j'arrive à faire 2 listes dynamiques, c'est à dire quand je choisis la section infomatique, j'ai les catégories souris-écrans-unités-imprimant
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|