[RESOLU] Insertion Php dans un code Javascript

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Insertion Php dans un code Javascript

par Ajoloca » 27 déc. 2006, 15:15

Bonjour,

C'est un sujet maintes fois traité dans le forum, une recherche avec le terme "XMLHttpRequest" te donnera surement des solutions.

par karpediem » 27 déc. 2006, 14:48

Apparemment, ce que je veux faire ne peut pas être fait de cette façon car si on étudie comment ça se passe (vulgarisation... merci r0bl0che) :

1. Le navigateur demande la page foo.php.
2. Le serveur reçoit la requête du navigateur.
3. Le serveur exécute le code PHP contenu dans foo.php.
4. Le résultat (généralement, une page HTML, mais pas nécessairement)
est renvoyé au navigateur.
5. La page générée en PHP arrive dans ton navigateur et l'HTML et le
JavaScript sont interprétés.

Donc, tenter d'exécuter du JS à l'étape 3. n'a aucun sens.
De même que tenter d'exécuter du PHP à l'étape 5., d'ailleurs.

Pour résoudre le problème, il y aurait 3 choix :
- Recharger la page en lui passant en paramètre une donnée lié au onchange. Ainsi, côté PHP, on peut afficher les bonnes valeurs.

- Au premier chargement de la page, créer un/des tableau(x) JS contenant toutes les données récupérées en PHP. Ainsi, lorsqu'un onchange survient, les données sont disponibles. => ça je ne sais pas comment faire... quelqu'un a une idée ?

- Utiliser Ajax pour aller chercher les données sur le serveur à chaque onchange. Ce qui revient un peu à un mix des deux premières solutions mais qui nécessite un peu plus de connaissance en programation.=> ça je ne sais pas comment faire... quelqu'un a une idée ?

A bientôt et Bonnes Fêtes !

Karpediem

par karpediem » 27 déc. 2006, 05:45

Bonjour,

Moi j'ai un tout petit problème (mais problème quand même, enfin pour moi ;o) dans le même style que celui-ci... alors je ne sais pas s'il faut que je fasse un nouveau post ou si je dois compléter celui-ci...

Bon, je me lance et je vous explique :

J'ai un magnifique tableau associatif que j'ai créé avec php suite à la lecture des enregistrements d'une table.

J'ai, pour simplifier : $_VILLE[$code_postal] = $ville;

Dans mon formulairre, j'ai une liste déroulante avec les codes postaux (liste alimentée avec ce même tableau) et un champ ville.

Je souhaiterai que lorsque l'évènement onChange() est détecté sur mon champ code_postal, mon programme aille lire mon tableau php (index = code_postal.value) et renvoie la valeur associée (un nom de ville) qu'il a trouvé dans mon champ ville...

Le pb c'est la communication javascript <=> php. Dans un sens ça va, mais dans l'autre, j'ai du mal...

Afin d'être plus explicite, voici un bon (extraction explicite tant que possible ;o) de mon code :

Code : Tout sélectionner

<FORM name="form1" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" > blablabla <select name="code_postal" size="1" onChange="recup_ville();"> <?php foreach ($_VILLE as $key => $value) { echo '<option value="'.$key.'">'; echo $key; echo '</option>'."\n"; } ?> </select> Ville <input name="ville" type="text" size="52"> blablabla </FORM>
Dans mon javascript j'ai commencé comme ceci...

Code : Tout sélectionner

<script> function recup_ville(){ var form_err = "0"; if (form1.code_postal.value.length <1 ) { form_err = "1"; } if ( form_err == "1") { alert('Le Code Postal doit être complet'); } else { form1.ville.value = ... c'est là que ça se gate ;-(( il faudrait que je puisse lire $_VILLE[form1.code_postal.value] et ça, je sais pô faire ;-( } } </script>
J'ai essayé de passer par notre très cher php en bidouillant un truc comme ça :

Code : Tout sélectionner

<?php echo "<script>\n"; echo "function test_recup(){\n"; echo $var."=form1.code_postal.value;\n"; echo "return ".$_VILLE[$var].";\n"; echo "}\n"; echo "</script>\n"; ?>
pour après dans mon javascript compléter ma fonction recup_ville() avec :

Code : Tout sélectionner

form1.ville.value = test_recup();
Mais ça ne fonctionne pas... rien n'est récupéré ;-(

Du coup, j'ai un tas de questions à vous pôser :
- Pensez-vous que je suis dans la bonne direction ?
- Y a-t-il une façon plus simple de communiquer des valeurs javascript à php ?
- Avez-vous des suggestions pour mon problème ?

Merci à tous ne serait-ce que pour m'avoir lu jusqu'au bout sans vous endormir ;o))

A bientôt

par albat » 01 avr. 2005, 12:05

aller chercher la valeur d'un champ dans une table mysql et l'insérer dans un fichier .js........ :?
Donc transmettre la valeur d'une variable PHP à une variable JS.
C''est bien ce que je t'ai indiqué. :shock:
<?php
// requête SQL
$req = "SELECT cours_dollar FROM cours_devises WHERE ...";
$res = ...
// récupération du résultat dans une variable PHP
$variablePHP = $cours_dollar;
// affectation à une variable JS
echo "<script type='text/javascript'>";
echo "variableJS = ".$variablePHP;
echo "document.write('10 EUR = ' + (10*variableJS) + ' USD');";
echo "</script>";
?>
En revanche, tu auras du mal à le faire dans un fichier externe .js

par Invité » 01 avr. 2005, 11:50

Autant pour moi!! je m'est trompé....

Donc en fait, cette solution me va pas , je pensais plus au contraire :
aller chercher la valeur d'un champ dans une table mysql et l'insérer dans un fichier .js........ :? ....ca devient plus dur!!! :D
c'est pour ça que je pensais au Php vu que je sais faire mais après...mystère! :(

Re: Insertion Php dans un code Javascript

par albat » 01 avr. 2005, 11:33

Peut-on insérer une variable php tiré d'une BDD mysql dans un bout de code Php?
Une variable PHP dans du code PHP ?
Ah oui ! Sans problème... :lol:

Bon, plus sérieusement, ta question devait être :
Peut-on insérer une variable php tiré d'une BDD mysql dans un bout de code Javascript ?
Oui aussi, mais c'est moins direct. :wink:
<?php
echo "<script type='text/javascript'>";
echo "variableJS = ".$variablePHP;
echo "</script>";
?>

Insertion Php dans un code Javascript

par toony » 01 avr. 2005, 11:23

Peut-on insérer une variable php tiré d'une BDD mysql dans un bout de code Php?
Le but est de convertir automatiquement la valeur d'un INPUT en dollars, le taux du dollar etant dans une BDD mysql... :roll:

Ca parait ptet un peu cinglé, je sais meme pas si ya une autre méthode alors...comment dire..................................HELP!!!!