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 :

combo box + php et javascript?


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Points : 85
    Points
    85
    Par défaut combo box + php et javascript?
    Bonjour a tous,
    je ne suis pas sure que ce soit le bon forum mais j'essaye.

    Voila, jai une table avec son entete ecrit en HTML. Je cree les autres lignes de la table dynamiquement avec Javascript.
    Pb: dans la cellule d'une ligne je souhaite mettre une combo box ayant des valeurs que je recupere dúne base de donnees.

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    <script>
        function start() {
            // get the reference for the body
            var body = document.getElementsByTagName("body")[0];
     
            // creates a <table> element and a <tbody> element
            //var tbl = document.createElement("table");
     
    		var tbl = document.getElementById("table");
            var tblBody = document.createElement("tbody");
     
            // creating all cells
            //for (var j = 0; j < 2; j++) {
                // creates a table row
                var row = document.createElement("tr");
     
                //for (var i = 0; i < n; i++) {
                    // Create a <td> element and a text node, make the text
                    // node the contents of the <td>, and put the <td> at
                    // the end of the table row
                    var cell_1 = document.createElement("td");
    				var cell_2 = document.createElement("td");
    				var cell_3 = document.createElement("td");
    				var cell_4 = document.createElement("td");
     
    				var cell1=document.createElement("input");
    				cell1.type="text";
    				cell1.name="fname";
    				cell1.size="20";
    				cell1.maxlength="50";
    				//cell1.style="background:#FFFFCC";
    				cell_1.appendChild(cell1);
     
    				var cell2=document.createElement("textarea");
    				cell2.name="fdescription";
    				cell2.rows="2";
    				cell2.cols="30";
    				//cell2.wrap="hard";
    				cell_2.appendChild(cell2);
     
    				var cell3 = document.createElement("a");
    				cell3.setAttribute("href","delete.php");
    				cell3.appendChild(document.createTextNode("[Delete]"));
                    cell_3.appendChild(cell3);
     
    				var cell4 = document.createElement("a");
    				cell4.setAttribute("href","delete.php");
    				cell4.appendChild(document.createTextNode("[Delete]"));
                    cell_4.appendChild(cell4);
     
                    row.appendChild(cell_1);
    				row.appendChild(cell_2);
    				row.appendChild(cell_3);
    				row.appendChild(cell_4);
               // }
     
                // add the row to the end of the table body
                tblBody.appendChild(row);
            //}
     
            // put the <tbody> in the <table>
            tbl.appendChild(tblBody);
            // appends <table> into <body>
            body.appendChild(tbl);
            // sets the border attribute of tbl to 2;
            tbl.setAttribute("border", "1");
        }
    </script>
     
    <form>
     
    	<table align="center" border = "2" cellspacing ="0" cellpadding="3" id="table">
    		<tr><td><b>Functionality Name:</b></td> <td><b>Description:</b></td> <td><b>Status:</b></td> <td><input type="submit" value="Add Functionality" onclick='start();'></td></tr>
     
    	</table>
    </form>
    <?php 
                    require_once ('../mysqli_connect.php');
                    echo '<select name="fstatus" style="width: 150px">';
     
                    // Retrieve all the statuses of a functionality
                    $q = "SELECT F_status_ID, Functionality_status FROM fstatuses ORDER BY F_status_ID ASC";
                    $r = mysqli_query($dbc, $q);
                    if (mysqli_num_rows($r) > 0) {
                            while ($menu_row = mysqli_fetch_array($r, MYSQLI_NUM)) {
                                    echo "<option value=\"$menu_row[0]\">$menu_row[1]</option>\n";
                            }
                    }
                    echo '</select>';
                    mysqli_free_result($r);
                    unset($menu_row);?>
    pour l'instant le menu deroulant ne se trouve pas dans cell_3 (j'y ai mis le lien delete.php pour eviter que mon code ne plante) comme je le veux.
    Une idee?

    Merci d'avance.

    Billy

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Pourquoi usilises-tu du Javascript ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Points : 85
    Points
    85
    Par défaut
    Parceque j'utilise du Javascript parce que je veux que la ligne de la table soit cree qund l'utilisateur clique sur Add Functionality.
    Je ne sais pas le faire en Php ni en javascript non plus mais je me suis debrouiller a avoir un resultat en javscript. PhP je ne sais pas le faire.

    Une autre possibilite? en php par exemple de creer les lignes dynamiquement?

    Merci

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Salut,
    Pour créer un select avec remplissage depuis php, tu peux t'inspirer de ce tutoriel:
    http://siddh.developpez.com/articles/ajax/#LIV

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Points : 85
    Points
    85
    Par défaut
    J'ai deja utilise ce tutoriel et je suis arrive au resultat suivant:

    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
    <script>
    	function getXhr(){
                    var xhr = null; 
    				if(window.XMLHttpRequest) // Firefox et autres
    				   xhr = new XMLHttpRequest(); 
    				else if(window.ActiveXObject){ // Internet Explorer 
    				   try {
    			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			            } catch (e) {
    			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			            }
    				}
    				else { // XMLHttpRequest non supporté par le navigateur 
    				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    				   xhr = false; 
    				} 
                                    return xhr;
    			}
     
    		function go(){
    				var xhr = getXhr();
    				xhr.open("POST","add_function.php",true);
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
     
    			}
    </script>
    <body onload="go()">
    le code de add_function.php est le suivant:

    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
    <?php 
                    require_once ('../mysqli_connect.php');
                    echo '<select name="fstatus" style="width: 150px">';
     
                    // Retrieve all the statuses of a functionality
                    $q = "SELECT F_status_ID, Functionality_status FROM fstatuses ORDER BY F_status_ID ASC";
                    $r = mysqli_query($dbc, $q);
                    if (mysqli_num_rows($r) > 0) {
                            while ($menu_row = mysqli_fetch_array($r, MYSQLI_NUM)) {
                                    echo "<option value=\"$menu_row[0]\">$menu_row[1]</option>\n";
                            }
                    }
                    echo '</select>';
                    mysqli_free_result($r);
                    unset($menu_row);?>
    Ce code tout seul marche parfaitement.

    Mais quand je teste le premier code, j'ai une page blanche.

    Qu'est ce qui se passe??

    Merci

    Billy

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Il est où le xhr.send() ?

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    +1 Bovino
    Tu ne récupères pas le résultat du requête AJAX dans la fonction go().

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Points : 85
    Points
    85
    Par défaut
    j'ai ecrit xhr.send();
    Ce que je veux recuperer c'est ma liste et mes options.
    Je ne sais pas quoi mettre en argument de xhr.send();

Discussions similaires

  1. [MySQL] Sauver valeur de Combo Box dans une session PHP
    Par Namson dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 13/08/2010, 10h34
  2. combo box en javascript _ fichiers KML
    Par Jijudu dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/11/2008, 18h43
  3. [VB.NET] Choisir les valeurs des items d'un combo box?
    Par Eithelgul dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/06/2004, 10h13
  4. Réponses: 2
    Dernier message: 11/05/2004, 11h17
  5. Combo box et liste de valeurs contenues dans ma table
    Par TieumB dans le forum C++Builder
    Réponses: 14
    Dernier message: 05/04/2004, 18h47

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