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 :

Combobox sans recharge page en JS


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 168
    Par défaut Combobox sans recharge page en JS
    Bonjour,
    je sollicite votre aide pour un problème qui m'occupe depuis plusieurs semaines

    j'ai un formulaire avec 5 combo box qui recharge la page à chaque fois me faisant perdre le résultat des premières
    j'avais trouvé une function en JS qui permettait de lire une base mysql sans rechargement
    j'ai bien un résultat, mais je ne vois pas comment construire mes combobox.
    si une âme charitable pouvait me donner un coup de main, c'est la seule chose qui me manque pour terminer une gestion d'association
    mon code d'appel de la function:
    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
    / Déclare un tableau associatif javascript de la forme
    //   tableau["nomchamp"][n°ligne] == valeur
    // contenant le résultat d'une requête mysql.
     
    // $requete : chaine de caractères contenant la requête mysql à lancer.
    // $id_table : nom de la variable tableau à déclarer en javascript.
     
    //----------------- connexion BdD et Tables --------------------------
    include("_connect7.php");
    $table="types_cotisation";
     
    //--------------------------------------------------------------------
    //prepartion de la requete à envoyer à la function
    $requete= "SELECT `id_type_cotis`, `libelle_type_cotis` FROM `$table`";
     
    //id à passer à la requete
    $id_table="id_type_cotis"; //nom de l'id de la table
     
    //--------------------------------------------------------------------
    //appel de la fonction JavaScript
    //--------------------------------------------------------------------
    mysql_to_js ($requete, $id_table);
     
    //Traitement du return de la function dans une combobox
    //
    //
    ?>
    Ma fonction

    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
    //********************************************************************
    //--------------------------------------------------------------------
    // fonction JavaScript mysql_to_js
    //--------------------------------------------------------------------
    //********************************************************************
    ?>
    <script language="JavaScript" type="text/javascript">
    <?php
    function mysql_to_js($requete, $id_table)
    {
    include("_connect7.php");
     
    // ------------------ Requête mysql ----------------------------------
    //echo $requete;echo"<br />"; test reception requete
    	$result = mysqli_query($SQL,$requete)
    	or die('Erreur SQL !   ----->'.$result.'&nbsp;&nbsp;'.mysqli_error($SQL).$requete);
     
    	$taille = mysqli_num_rows($result);
    //echo $taille;echo"<br />";// test ok retourne nombre ecritures trouvées 7
     
    //--------------------------------------------------------------------	
    // Ecriture de la déclaration du tableau javascript si la requête
    // contient quelque chose, sinon déclaration d'un tableau null.
    //--------------------------------------------------------------------	
     
    $numfields = mysqli_num_fields($result); // retourne le nombre de champs (colonnes)
    //echo $numfields;echo"<br />";// test ok retourne 2 colonnes
     
    	if($numfields > 0) 
    	{	
    // Déclaration de la variable tableau.
    		echo("var ".$id_table." = new Array(".$numfields.");\n");
     
    // Déclaration des tableaux de valeurs pour chaque champs.
    	for($i=0; $i<$numfields; $i++) 
    		{
    	 echo($id_table."['".mysql_field_name($result, $i)."'] = new Array(".$taille.");\n");	
    		echo"<br />";
    		//echo"<br />";
    		}
    		if($taille>0)  // si un resultat est trouvé
    		{	
    		echo "<br />";
    			$i=1; //i=0
    			while($rows = mysqli_fetch_assoc($result))
    			{
     
    				foreach($rows as $key => $value)
    				{
    				//	echo'<pre>';print_r($rows);	echo'</pre>';
    				echo($id_table."['".mysqli_escape_string($SQL,$key)."'][".$i."] = '".mysqli_escape_string($SQL,$value)."';<br >");
     
     
    				//echo"<br />";
    				//return ($return); // facultatif 
    				}				
    				$i++;
     
    			}	
    mysql_free_result($result);			
    		}		
    	}
    else echo("var ".$id_table." = null;\n");	
    }	
    ?>
    </script>
    le résultat de sortie pour faire la combo

    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
    var id_type_cotis = new Array(2); id_type_cotis[''] = new Array(7);
    id_type_cotis[''] = new Array(7);
     
    id_type_cotis['id_type_cotis'][1] = '1';
    id_type_cotis['libelle_type_cotis'][1] = 'Adhesion Internet+Axona';
    id_type_cotis['id_type_cotis'][2] = '2';
    id_type_cotis['libelle_type_cotis'][2] = 'Adhésion Internet Simple';
    id_type_cotis['id_type_cotis'][3] = '3';
    id_type_cotis['libelle_type_cotis'][3] = 'Membre Bienfaiteur Internet+Ax';
    id_type_cotis['id_type_cotis'][4] = '4';
    id_type_cotis['libelle_type_cotis'][4] = 'Membre Bienfaiteur+Internet';
    id_type_cotis['id_type_cotis'][5] = '5';
    id_type_cotis['libelle_type_cotis'][5] = 'Abonnement AXONA sans Adhésion';
    id_type_cotis['id_type_cotis'][6] = '6';
    id_type_cotis['libelle_type_cotis'][6] = 'Donateurs';
    id_type_cotis['id_type_cotis'][7] = '7';
    id_type_cotis['libelle_type_cotis'][7] = 'Adh Gratuite ou Couple';

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 168
    Par défaut
    Bonjour,
    merci pour la réponse

    je n'ai pas besoin de combo en cascades, simplement une petite combo de rien du tout
    et si j'arrivais à faire avec cette petite fonction toute simple et sympathique je suis un homme heureux

    a vous lire

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Il faut des options avec des values ?

    tu veux quoi en value et quoi en libellé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <select>
      <option value="?">libellé</option>
    ton array est en php ? il faudra le passer en js avec un json encode

    a moins que tu veuilles construire le select en php ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 168
    Par défaut
    merci de ton aide

    le plus simple sera le mieux, a 70 printemps les neurones sont hs

    le tout est de ne pas recharger la page
    j'ai ai au moins 5 dans le mème formulaire

    j'avais pas vu le haut du message:
    je veux afficher les libellés dans la combo et récupérer l'id pour l'enregistrer

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Questions subsidiaires

    tu charges tous les éléments pour les combos au chargement de la page, ou est ce que un évènement sur la page doit aller récupérer les infos pour le combe pour le serveur?

    Cela déterminera si on doit faire un ajax pour aller récupérer les données pour les combos ou non
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/05/2013, 15h36
  2. Fonction recup valeur DBB sans recharger page
    Par daninou dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/05/2009, 23h01
  3. [MySQL] Actualiser données PHP sans recharger page
    Par herve94400 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/10/2008, 15h44
  4. Déplacement dans une page sans recharge
    Par EpOnYmE187 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/08/2005, 16h17
  5. Changer la police avec un select, sans recharger la page
    Par Netoman dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 30/12/2004, 18h07

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