MySQL dans du JS?

Salut à tous,

Question bête, mais auquel je n'ai pas trouvé de réponse:

Peux t'on insérer du MySQL dans du JS ''simplement'', du genre, dans mon code JS

function cochageSecteurs(){
        <?php
                 $reponse = mysql_query("SELECT * FROM listeDeroulantes WHERE type='secteur' ORDER BY valeur");
                 while($donnees = mysql_fetch_array($reponse)){
                        echo 'this.rechercheStage.'.$donnees['valeur'].'.checked="true";';
	                
        ?>
	};


Merci beaucoup d'avance :D

Bonne après midi à tous

ApoKps
Configuration: Windows XP
Firefox 2.0.0.14

8 réponses

  1. Salut
    Je vais rien t'apporter mais bon...

    Si ton php marche, les fct php 'liés' à mysql marchent aussi. (Je n'avais jamais vu ça mais pourquoi pas)

    Bonne continuation.
    1. merci quand même.

      J'ai essayé, et tout mon code JS plante... Je suppose donc que ce n'est pas faisable... dommage
      1. Bonjour.

        Javascript est un langage qui s'exécute sur le client.
        php (et donc la base MySQL qu'il interroge) s'exécute côté serveur.

        => Impossible de faire ce que tu voudrais faire.
        1. bah justement, je voudrais créer une fonction javascript avec une fonction PHP/MySQL

          Donc, logiquement, le serveur devrait balancer une fonction JS toute propre et toute valide au client, non?
      2. C'est absurde ce que tu fait, car le javascript ne peut pas contrôler le php. c'est le php qui contrôle je Js.
        1. Bsr

          Effectivement tu ne peux pas faire exécuter du code PHP en JavaScript ni de requête SQL mais j'avoue que ca simplifierait vachement la vie :-)

          Mais tu peux faire autrement :

          Première solution : facile à mettre en oeuvre
          Dans ta fonction cochageSecteurs() tu charges une nouvelle page (ou la même peu importe) qui va exécuter ta requête

          Séconde solution : utiliser AJAX (bcp plus complexe évidemment)
          Dans ce cas ta fonction cochageSecteurs va demander au serveur de charger une autre page (celle qui va exécuter ton code PHP avec la requête MySQL) et de te retourner le résultat mais sans recharger ta page principale.
          Ensuite lorsque tu reçois le résultat dans ta page principale tu actualises les éléments qui doivent l'être en utilisant JavaScript

          1. Merci pour vos réponses. Cependant, je dois m'exprmimer assez mal, car tout le monde comprend le contraire de ce que j'essaie de dire:

            On ne peut pas éxécuter du PHP dans une fonction, JS, ok, mais peut on généré une fonction JS par du PHP? c'est ça ma question :)
        2. Bsr

          Oui en PHP on peut générer tout le code JavaScript que l'on veut mais il doit être valide sinon ca plante donc c'est assez délicat à déboguer
          1. merci bcp pour ta réponse :)

            Mais est ce que le code peut être placé dans un fichier .js à part ou doit il être en intraligne?
        3. Bjr

          Hum mettre du code PHP dans un fichier .js et faire ensuite
          <script src="mon_script.js" type="text/javascript"></script>

          Pas sûr que ça fontionne car rien n'indique que le serveur va traiter le fichier *.js comme une page html classique et encore moins que le module php va l'interpréter (en général il se cantonne aux pages portant l'extension .php voir d'autres si et seulement si cela a été configuré explicitement sur le serveur)

          Essai plutôt un truc du genre :

          <script src="mon_script.js.php" type="text/javascript"></script>

          Avec de la chance il se pourrait que ça fonctionne ;-)
          1. et en incluant mon JS dans le head de cette façon

            <script type="text/javascript">
            <?php
            include(scripts.php);
            ?>
            </script>
             


            Tu penses que ça devrait marcher à coup sur?
            Pke au pire, ça reviendrais exactement au même ;)

            Merci beaucoup pour ton aide :D

            ApoKps
        4. Bjr

          oui de cette façon ça va fonctionner ça revient en fait à intégrer le code JS directement dans la page

          Par contre j'ai testé

          demo.js.php :

          <?php
          echo "alert('test')";
          ?>

          et demo.php

          <html>
          <head>
          <script src="demo.js.php" type="text/javascript"></script> 
          </head>
          <body>
          Demo
          </body>
          </html>


          Ca fonctionne sous IE en tout cas