[php] Données mysql vers javascript
Mouams
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Mouams Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Mouams Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Voila mon problème :
j'ai un premier champ de saisie : "Numéro"
et un textarea "Adresse".
Je voudrais que lorsque l'utilisateur rentre le numéro, lorsqu'il "dé-focus", l'adresse soit automatiquement rentrée dans le champ. A savoir que le numéro et l'adresse sont dans une même base de données.
Donc ce que je voudrais faire, c'est récupérer l'adresse en fonction du numéro de pochette (ca ok c'est pas dur ... un petit SELECT et c'est bon). Et directement l'afficher dans le textarea "Adresse", donc à mes yeux, ce serait lors d'un onBLur.
Mais le problème c'est que je ne vois pas comment faire. Comme ceci ?
Sauf que la récupération de l'adresse doit se faire en php ... et mettre du php dans un onblur, (je suis débutant je précise) je ne sais pas comment faire ...
j'ai un premier champ de saisie : "Numéro"
et un textarea "Adresse".
Je voudrais que lorsque l'utilisateur rentre le numéro, lorsqu'il "dé-focus", l'adresse soit automatiquement rentrée dans le champ. A savoir que le numéro et l'adresse sont dans une même base de données.
Donc ce que je voudrais faire, c'est récupérer l'adresse en fonction du numéro de pochette (ca ok c'est pas dur ... un petit SELECT et c'est bon). Et directement l'afficher dans le textarea "Adresse", donc à mes yeux, ce serait lors d'un onBLur.
Mais le problème c'est que je ne vois pas comment faire. Comme ceci ?
<input type="text" onblur=" /*récupération de l'adresse*/;/*remplissage du textarea*/">
Sauf que la récupération de l'adresse doit se faire en php ... et mettre du php dans un onblur, (je suis débutant je précise) je ne sais pas comment faire ...
A voir également:
- [php] Données mysql vers javascript
- Fuite données maif - Guide
- Easy php - Télécharger - Divers Web & Internet
- Supprimer les données de navigation - Guide
- Trier des données excel - Guide
- Windows 7 vers windows 10 - Accueil - Mise à jour
3 réponses
on appelle ca de l'ajax, ou du xmlrpc...
comment on met ca en place? aucune idée!
mais je fonctionne reside dans le fait que le javascript va executer une fonction php qui se trouve sur le serveur, ensuite le php renvoie le resultat au javascript, et suivant ton traitement, tu peux mettre à jour ta page client sans la rafraichir!
Mainteant je laisse la place au autre pour savoir comment cela ce met en place au niveau du serveur!
comment on met ca en place? aucune idée!
mais je fonctionne reside dans le fait que le javascript va executer une fonction php qui se trouve sur le serveur, ensuite le php renvoie le resultat au javascript, et suivant ton traitement, tu peux mettre à jour ta page client sans la rafraichir!
Mainteant je laisse la place au autre pour savoir comment cela ce met en place au niveau du serveur!
Bonjour,
Effectivement, l'Ajax me semble le plus adapté pour faire ce genre de chose. En fait ce qui se cache sous le nom d'Ajax, c'est tout simplement du JavaScript qui fait appel à un script externe.
J'ai sous la main un exemple qui fait à peu près ce que tu veux :
https://www.xul.fr/ajax-get-xml.html
Plutôt que de longues explications, je t'enjoins à aller regarder cette page et son code source.
Une fois que ce sera fait, tu pourras poser des questions plus précises !
Bon, je donne quand même une petite explication : dans la création de l'objet xmlhttprequest, il y a ceci :
Pourquoi tout ça pour instancier un pauvre petit objet ? Tout simplement parce que Internet Explorer doit passer par un ActiveX (Msxml2.XMLHTTP ou Microsoft.XMLHTTP), alors que Firefox implémente la méthode "normale", à savoir l'objet javascript window.XmlHttpRequest.
Donc tout ça peut être simplifié, mais on perd la compatibilité avec FF ou IE.
Ensuite, c'est dans cette ligne-là
var adresse = "getAdresseFromNumero.php?num="+document.getElementById('Numero').Value;
req.open("GET", adresse, true);
Ensuite, il faut créer sur ton serveur un fichier getAdresseFromNumero.php qui prenne un argument de type GET (que tu récupères sous la forme $_GET['num'] ), ce sera le numéro à utiliser pour ta requête.
Ce fichier php doit renvoyer du xml, donc avant toute chose, il faudra placer ceci :
header('Content-type: text/xml');
Ensuite, placer la balise xml racine, que tu peux appeler comme tu veux (par exemple, <root>, ou <adresse> : mais il faut adapter le code javascript que j'ai fourni, c'est pas compliqué y a juste un mot à changer), l'adresse, et enfin fermer la balise.
Le code doit donc ressembler à ceci :
echo "<root>".$adresse."</root>";
Avec $adresse le résultat de ta requête SQL, bien sûr.
Voilà ! Avec ça, ça devrait aller :)
Pour le reste, n'hésite pas à poser les questions que tu veux !
Xavier
Effectivement, l'Ajax me semble le plus adapté pour faire ce genre de chose. En fait ce qui se cache sous le nom d'Ajax, c'est tout simplement du JavaScript qui fait appel à un script externe.
J'ai sous la main un exemple qui fait à peu près ce que tu veux :
https://www.xul.fr/ajax-get-xml.html
Plutôt que de longues explications, je t'enjoins à aller regarder cette page et son code source.
Une fois que ce sera fait, tu pourras poser des questions plus précises !
Bon, je donne quand même une petite explication : dans la création de l'objet xmlhttprequest, il y a ceci :
if (window.XMLHttpRequest) { req = new XMLHttpRequest(); if (req.overrideMimeType) { req.overrideMimeType('text/xml'); } } else if (window.ActiveXObject) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } }
Pourquoi tout ça pour instancier un pauvre petit objet ? Tout simplement parce que Internet Explorer doit passer par un ActiveX (Msxml2.XMLHTTP ou Microsoft.XMLHTTP), alors que Firefox implémente la méthode "normale", à savoir l'objet javascript window.XmlHttpRequest.
Donc tout ça peut être simplifié, mais on perd la compatibilité avec FF ou IE.
Ensuite, c'est dans cette ligne-là
req.open("GET", "ajax-get-xml.xml", true);que tu mets l'URL de ton script. (par exemple, dans ton cas, je pense que tu pourrais remplacer cette ligne par :
var adresse = "getAdresseFromNumero.php?num="+document.getElementById('Numero').Value;
req.open("GET", adresse, true);
Ensuite, il faut créer sur ton serveur un fichier getAdresseFromNumero.php qui prenne un argument de type GET (que tu récupères sous la forme $_GET['num'] ), ce sera le numéro à utiliser pour ta requête.
Ce fichier php doit renvoyer du xml, donc avant toute chose, il faudra placer ceci :
header('Content-type: text/xml');
Ensuite, placer la balise xml racine, que tu peux appeler comme tu veux (par exemple, <root>, ou <adresse> : mais il faut adapter le code javascript que j'ai fourni, c'est pas compliqué y a juste un mot à changer), l'adresse, et enfin fermer la balise.
Le code doit donc ressembler à ceci :
echo "<root>".$adresse."</root>";
Avec $adresse le résultat de ta requête SQL, bien sûr.
Voilà ! Avec ça, ça devrait aller :)
Pour le reste, n'hésite pas à poser les questions que tu veux !
Xavier