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

Langage PHP Discussion :

Combobox D4PHP


Sujet :

Langage PHP

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 54
    Points : 28
    Points
    28
    Par défaut Liste liée D4PHP, FIrebird, en AJAX
    Salutations,

    je travaille sous D4PHP à savoir Delphi for PHP. Avec une base de donnée Firebird.

    J'ai un appel de fonction qui marche très bien et j'arrive à remplir un label en partant de la valeur sélectionnée dans une combobox.

    Le problème étant le remplissage de la seconde combobox, j'ai essayé d'adapter les différents exemples de mysql mais sans résultat.

    Voici le code de la page appellée :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    $v='' ;
    if(isset($_POST["value1"]))
    {
      $v=$_POST["value1"];
    }
     
    $ret="";
    $ret.= $v;
    echo "var stuff='$ret';"
    ?>
    vcl.$('Label1').innerHTML=stuff;

    Cela me permet d'afficher dans le label, j'ai cette fonction qui fonctionne sur un simple onChange que je dois insérer dans cette page.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     $this->combo2->Clear();
           $this->Query1->close();
           $ds = $this->Datasource1->DataSet;
           $this->Query1->SQL = 'SELECT NOM_BAT FROM BATIMENT WHERE BATIMENT.CODE_SITE IN(SELECT CODE_SITE FROM SITE WHERE SITE.NOM_SITE="'.$v.'") ORDER BY NOM_BAT ASC';
           $this->Query1->open();
           $ds->first();
     
           while (!$ds->EOF)
              {
               $this->combo2->AddItem($ds->NOM_BAT);
               $ds->next();
              }

    Ici je pense que le problème majeur vient du $this, j'ai essayé de l'amadouer avec un document.combo mais il est coriace.

    Voila donc je voudrais savoir si l'erreur vient du $this, ou du remplissage de la combo. Faudrait il le remplir de cette manière ?

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<option value='".$row["id"]."'>".$row["nom"]."</option>";

    Le <select name='auteur' id='auteur' onchange='go()'>
    n'est il pas généré automatiquement par D4PHP.

    Je trouve peu d'aide sur cet Outil de Développement. A croire peu répandu,
    je vous remercie par avance de la moindre étincelle d'aide que vous pourriez m'apporter.

    Vous souhaitant une bonne journée, je vaque à cette occupation.

  2. #2
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 54
    Points : 28
    Points
    28
    Par défaut
    Après de multiples recherches j'ai réussi a résoudre mon problème je poste ici la réponse. Je rappelle que ce n' est qu'une liste liée en D4PHP avec une base de donnée FireBird tout ceci en Ajax.

    Dans le main l'on retrouve :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function comboJSChange($sender, $params)
      {
      ?>
      var params = 'nomsite=' +document.getElementById('combo').options[document.getElementById('combo').selectedIndex].text;
      basicAjax("ajax3.php",params);
       <?php
       }
    Dans une page appellée ajax3.php on trouve :

    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
    <?php
    $v='' ;
    if(isset($_POST["nomsite"]))
    {
      $v=$_POST["nomsite"];
    }
    $ret="";
    $ret.= $v;
    echo "var stuff='$ret';";
     
    // Connexion a la base de donnée
    $conn=ibase_connect('localhost:D:\BD_G2IT\BASEDESBONS.FDB', 'SYSDBA', 'masterkey');
     
    if (!$conn)
    {
    echo "Access Denied!";
    exit;
    }
     
    //Exécuter la requête
    $result=ibase_query($conn, 'SELECT BATIMENT.NOM_BAT FROM BATIMENT');
     
    //Traitement lignes et colonnes
     
    while ($row = ibase_fetch_row ($result))
    {
    $var2=utf8_encode($row[0]);
    echo "var plouf='$var2';";
       ?>
       function additem(obj,text)
              {
              var newOpt = obj.appendChild(document.createElement('option'));
              newOpt.text = text;
              }
    additem(vcl.$('comboo'),plouf);
       <?php
    }
    ?>
    Cette requête fonctionne.

    J'ai par contre un problème lorsque j'essaye d'effectuer une requête ou il y a une comparaison avec une chaîne de caractères le Where marche avec un entier mais pas un string, problème de formatage de chaine? je ne sais pas si quelqu'un peut m'aiguiller à ce sujet ça serait sympa, d'avance merci.

    Une requête en dur qui ne fonctionne pas :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SITE.NOM_SITE FROM SITE WHERE NOM_SITE="Mairie 1"

    Une requête d'après la variable qui ne fonctionne pas non plus :
    [code]'SELECT BATIMENT.NOM_BAT FROM BATIMENT WHERE BATIMENT.CODE_SITE = SITE.CODE_SITE AND SITE.NOM_SITE="'.$_POST["nomsite"].'"');[/QUOTE]

    Ces requêtes fonctionnent osu un simple onChange mais pas sous Ajax, pourquoi je ne sais pas encore, j'espère que vous pourrez éclairer ma lanterne. Merci d'avance, et bonne journée à vous.

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 54
    Points : 28
    Points
    28
    Par défaut
    Problème résolu,

    "SELECT NOM_SITE FROM SITE WHERE UPPER(NOM_SITE)=UPPER('Mairie 1');"

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

Discussions similaires

  1. Multi-selection dans une ComboBox ?
    Par Moloko dans le forum MFC
    Réponses: 5
    Dernier message: 07/07/2021, 17h26
  2. [VB6] [Interface] ComboBox à plusieurs colonnes
    Par mtl dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/03/2004, 17h35
  3. [VB6] [Interface] Grille avec combobox
    Par khany dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 15/01/2003, 09h55
  4. combobox et readonly
    Par Mac leod dans le forum C++Builder
    Réponses: 6
    Dernier message: 28/11/2002, 10h27
  5. combobox->text
    Par clovis dans le forum C++Builder
    Réponses: 18
    Dernier message: 21/06/2002, 15h43

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