IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

un SELECT borné par une variable JS


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 30
    Points : 22
    Points
    22
    Par défaut un SELECT borné par une variable JS
    bonjour,

    j ai un select qui fonctione bien, mais dont je fixe les bornes en dur dans le div:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <SELECT NAME='SelectMenu' onChange='fonction_choix_blocage(this.value)'>
    <?php
    for($i=-3;$i<21;$i++)
    {
    if ($i == 0) {$selection="selected";} else {$selection="";}
    echo '<option '.$selection.' value='.$i.'>'.$i.'</option>';
    }
    ?>
    </SELECT>
    jusque là, par de probleme.

    mais j aimerais bien que la valeur de $i puisse etre maximum egale une variable qui existe dans le code JS

    dans l'absolu, ca pourrait devenir un truc du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <SELECT NAME='SelectMenu' onChange='fonction_choix_blocage(this.value)'>
    <?php
    for($i=-3;$i<VARIABLE JS;$i++)
    {
    if ($i == 0) {$selection="selected";} else {$selection="";}
    echo '<option '.$selection.' value='.$i.'>'.$i.'</option>';
    }
    ?>
    </SELECT>

    comment faire ca?

    merci les amis
    eric

  2. #2
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    Le problème est que le PHP est interprété sur le serveur avant d'être envoyé sur le client, donc avant que la variable JS n'existe. A moins que tu ne nous parles d'ASP codé en JS...
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 181
    Points : 189
    Points
    189
    Par défaut
    bonjour,
    renseigne toi mais je ne suis pas sûr que tu puisse récupérer une variable javascript dans ton code php (côté client/côté serveur)
    désolé
    sinon attend qu'un vrai développeur vienne t'aider
    ...

  4. #4
    Membre actif Avatar de Cpas2latarte
    Inscrit en
    Janvier 2006
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 237
    Points : 255
    Points
    255
    Par défaut
    Il est vrais que je PHP s'exécute AVANT le JS donc le PHP ne peut connatre la valeur du JS.
    Sauf si il y a plusieurs appel de la page même PHP, et que la page PHP doit tenir compte de la valeur sélectionné dans le JS.
    Dans ce cas lors des appel successif de la page PHP, js peut lui transmettre la valeur via formulaire ou cookie,

    Sinon tu peux toujours modifier ton select directement en JAVASCRIPT (ajout, supression d'option, modifiation ...)
    du coup pas besoin de passer quoi que ce soit a PHP.
    Que veux tu faire exactement? peux tu être plus précis
    Il n'y a que 2 choses infinies dans le monde :
    L'univers et la bétise humaine...
    Mais pour l'univers, je n'ai pas de certitude (A.E.)

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    la solution de passer par le JS pour faire le select m interesse, je suis pas buté

    par contre, j ai aucune idée par ou commencer...

    j ai juste une question: je vais devoir mettre toutes les valeurs dans une bdd... j espere qu on peut questionner une bdd avec Js... sinon, je vais etre dans le ...

    ( en fait, j utilise JS pour faire un site propre, sans appels à la bdd à chaque rafraichissment de la page.)

    voila..

    eric

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 181
    Points : 189
    Points
    189
    Par défaut
    Citation Envoyé par rragnarok Voir le message
    j ai juste une question: je vais devoir mettre toutes les valeurs dans une bdd... j espere qu on peut questionner une bdd avec Js... sinon, je vais etre dans le ...
    tu peux récupérer les valeurs de ta bdd avec php puis les utiliser dans ton code javascript par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms[0].champ.value=<?php echo $variable;?>;
    et à partir de ça tu peux faire tout ce que tu veux
    vraiment pratique php/javascript, moi j'adore
    ...

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    je vais essayer ton truc..

    si ca marche, c est genial et ca repond a plein de problemes..
    et ce serait a mettre en premier dans tous les forums car il y a un nombre impressionnant de post qui posent le probleme de la portabilite des variables php/Js

    aller.. au boulot et et a dans qq heures!!


    eric

  8. #8
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    hehe... là c est dans le sens php --> JS

    mais dans l autre sens....

    une variable JS a transformer en PHP.

    dans mon probleme actuel, ce serait:

    variable JS --> variable PHP

    boucle for i=1 to variable php
    select
    fin select
    fin boucle

    t as une astuce pour ca aussi?

    eric

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    sinon, pour recuper les valeurs de la bdd, c est nickel, merci, ca va ete extra.



    eric

  10. #10
    Membre actif Avatar de Cpas2latarte
    Inscrit en
    Janvier 2006
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 237
    Points : 255
    Points
    255
    Par défaut
    Citation Envoyé par rragnarok Voir le message
    la solution de passer par le JS pour faire le select m interesse, je suis pas buté

    par contre, j ai aucune idée par ou commencer...
    ci dessous un petit code qui te montre comment commencé
    CAD ajout suppression d'opton dans un select en JS PURE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <meta http-equiv="content-type" content="text/html; charset=windows-1250">
     
      <title></title>
      <script>
      function creerOption() {
       var newOption = document.createElement("option");
       newOption.text = document.getElementById("nlibelle").value;
       document.getElementById("nlibelle").value ="";
       document.getElementById("monSelect").options.add(newOption);
      }
      function supprimerOption () {
        if(document.getElementById("monSelect").selectedIndex<0) {
          alert("Selectionnez l'element à supprimer");
          return;
        }
        document.getElementById("monSelect").remove(document.getElementById("monSelect").selectedIndex);
      }
      </script>
      </head>
      <body>
     
      <select id="monSelect">
      </select><br/>
      <input type="text" id="nlibelle"/>
      <input type="button" value="ajouter" onclick="creerOption()"/>
      <input type="button" value="supprimer" onclick="supprimerOption()">
      </body>
    </html>
    Concerant les valeur issu de la BDD, tu peux utiliser un requête AJAX(apres chargement de la page) préremplir a l'aide de PHP des variable JS (avant chargement) un comme comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?
    $resultat = 'xxxx'
    ?>
    <Script>
    var valeurJS ="<?=$resultat?>"
    </script>
    Évidemment, la solution avec ajax est plus élégante, mais celle ci et pour moi plus simple a comprendre et à mettre en ouvre. Si tu veux un exemple avec ajax, fait signe.
    Il n'y a que 2 choses infinies dans le monde :
    L'univers et la bétise humaine...
    Mais pour l'univers, je n'ai pas de certitude (A.E.)

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 181
    Points : 189
    Points
    189
    Par défaut
    merci Cpas2latarte pour ton code, je pense que ça pourra me servir
    et je veux bien l'exemple ajax ou un site qui explique bien comment faire parce que ça me plairait bien mais j'ai un peu de mal à comprendre sans un bon tutoriel

    merci
    ...

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 181
    Points : 189
    Points
    189
    Par défaut
    tu peux essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    boucle for i=1 to <?php echo variable php;?>
    select
    fin select
    fin boucle
    expliqué comme tu l'as fait ça reste dans le sens php->js
    par contre js->php impossible (à ma connaissance) peut être avec ajax mais là faudra demander à quelqu'un d'autre
    (je veux bien une réponse ajax )
    ...

  13. #13
    Membre actif Avatar de Cpas2latarte
    Inscrit en
    Janvier 2006
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 237
    Points : 255
    Points
    255
    Par défaut
    Bon je vais donner un exemple cette fois si basé sur AJAX.

    Je reprend l'exemple que j'avais donnée précédemment que je modifie pour faire une requette AJAX.
    Il y a maintenant 2 pages
    la page qui soumet la requête et la page qui traite la requête et qui envoi une réponse ) la 1ere page
    Code de la page 1 (page1.php)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <meta http-equiv="content-type" content="text/html; charset=windows-1250">
      <title></title>
      <script>
     
      function creerOption(libelle) {
       var newOption = document.createElement("option");
       newOption.text = libelle;
       document.getElementById("nlibelle").value ="";
       document.getElementById("monSelect").options.add(newOption);
      }
      function supprimerOption () {
        if(document.getElementById("monSelect").selectedIndex<0) {
          alert("Selectionnez l'element à supprimer");
          return;
        }
        document.getElementById("monSelect").remove(document.getElementById("monSelect").selectedIndex);
      }
     
      function getAjaxObject(){
        var ao = null;
        if(window.XMLHttpRequest) // Firefox et autres
          ao = new XMLHttpRequest();
        else if(window.ActiveXObject){ // Internet Explorer
          try {
            ao = new ActiveXObject("Msxml2.XMLHTTP");
          } catch (e) {
            ao = new ActiveXObject("Microsoft.XMLHTTP");
          }
        } else { 
          ao = false;
        }
        return ao
      }
     
      function sendRequest(){
        var ajaxObject = getAjaxObject()
        ajaxObject.onreadystatechange = function(){
          if(ajaxObject.readyState == 4 && ajaxObject.status == 200){
            creerOption(ajaxObject.responseText);
          }
        }
        ajaxObject.open("GET","page2.php?param1=" + document.getElementById("nlibelle").value,true);
        ajaxObject.send(null);
      }  
     
     
      </script>
      </head>
      <body>
     
      <select id="monSelect">
      </select><br/>
      <input type="text" id="nlibelle"/>
      <input type="button" value="ajouter" onclick="sendRequest()"/>
      <input type="button" value="supprimer" onclick="supprimerOption()">
      </body>
    </html>
    et maintenant la page 2 qui traite la requête. Dans mon exemple cette page doit obligatoirement s'appeler "page2.php"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    <?
    // page PHP qui va recevoir la requête AJAX
     
    // obtention des param (ICI GET)
    $param = $_GET['param1'];
     
    // traitement divers par exemple reqûete BDD...
    $param = 'la valeur est ' . $param;
     
    //ecriture de la réponse pour AJAX
    echo $param;
    ?>
    Enjoy
    Il n'y a que 2 choses infinies dans le monde :
    L'univers et la bétise humaine...
    Mais pour l'univers, je n'ai pas de certitude (A.E.)

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 181
    Points : 189
    Points
    189
    Par défaut

    ça me fait un bon début pour attaquer ajax
    ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplacer un champ par une variable sur une select from deleted
    Par Estomac dans le forum Développement
    Réponses: 4
    Dernier message: 14/03/2014, 15h16
  2. [MySQL] Nommé un select par une variable
    Par dudu134 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 20/10/2007, 00h00
  3. Select en utilisant une variable
    Par georgeabitbol dans le forum Oracle
    Réponses: 3
    Dernier message: 23/03/2006, 11h11
  4. [XML] specifier la DTD par une variable d'environnement
    Par xxiemeciel dans le forum Valider
    Réponses: 2
    Dernier message: 20/03/2006, 16h28
  5. Réponses: 3
    Dernier message: 11/12/2005, 11h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo