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

AJAX Discussion :

[AJAX] onchange sur un <select>, appeler page Php


Sujet :

AJAX

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 14
    Par défaut [AJAX] onchange sur un <select>, appeler page Php
    Bonjour,

    Je ne savais pas exactement dans quelle section exposée mon problème (php, js, ...) donc je le fais ici.

    Voici mon problème:

    J'ai un <select> qui contient des départements, avec ces départements je met actuellement à jour un tableau listant des entreprises dans ce département contenu dans la bdd(mysql) grâce à un bouton.


    Or les contraintes d'un cahier des charges m'obligent à rendre cette liste et ce tableau dynamique.
    J'arrive bien avec un onchange a appelé du javascript mais pour lier ça à du PHP (donc coté serveur), impossible de trouver une astuce.

    Voici mon <select> sans javascript, qui marche donc en cliquant simplement sur un bouton :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <form name="formDep" method="POST" action="#">
           <td>Le département sélectionné : 
     
    	<select style="width: 20%;" name="depList" id="depList" onchange="changeDep(this)">
     
    		<?php remplissageDep(); ?>
     
    	</select>
     
    	</td>
    	<td><input name="boutonDep" id="boutonDep" type="submit"/></td>
    </form>

    Et mes fonctions remplissant le select et le tableau:
    Code php : 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
    function remplissageDep(){
     
            connect();
     
            $req=("SELECT dptStation FROM station");
    	$res=mysql_query($req) or die('Erreur SQL !<br>'.$req.'<br>'.mysql_error());
     
    	while($data = mysql_fetch_assoc($res))
    	{
    		if($data['dptStation']==$_SESSION['departement'])
    		{
     
    			echo '<option value="'.$data['dptStation'].'" selected>'.$data['dptStation'].'</option>';
     
    		} else {
     
    			echo '<option value="'.$data['dptStation'].'">'.$data['dptStation'].'</option>';
     
    		}
    	}
    	mysql_close();
     
    }
     
    function remplissageTab(){
     
    	if(isset($_POST['boutonDep'])){
     
    		//redéfini la session par le département sélectionné
    		$_SESSION['departement']=$_POST['depList'];
     
    		connect();
     
    		//récupère les données des entreprises dans la base commençant par le numéro de département sélectionné
    		$req=("SELECT e.raisonEntreprise, e.cpEntreprise, e.villeEntreprise, m.libelleMetier FROM(entreprise e INNER JOIN metier m ON e.idMetier=m.idMetier) WHERE e.cpEntreprise LIKE '".$_POST['depList']."%' ");
     
    		$res=mysql_query($req) or die('Erreur SQL !<br>'.$req.'<br>'.mysql_error());
     
    		echo '<table id="listeEntreprise">';
    			echo '<tbody>';
     
    				$i=0;
    				// remplissage du tableau entreprise
    				while($data = mysql_fetch_assoc($res))
    				{
    					// change le style une fois sur deux
    					if(($i%2)==0){
    						echo '<tr>';
    							echo '<td class="a">'.$data['raisonEntreprise'].'</td>';
    							echo '<td class="b">'.$data['libelleMetier'].'</td>';
    							echo '<td class="c">'.$data['cpEntreprise'].'</td>';
    							echo '<td class="d">'.$data['villeEntreprise'].'</td>';
    						echo '</tr>';
     
    					} else {
     
    						echo '<tr class="odd">';
    							echo '<td class="a">'.$data['raisonEntreprise'].'</td>';
    							echo '<td class="b">'.$data['libelleMetier'].'</td>';
    							echo '<td class="c">'.$data['cpEntreprise'].'</td>';
    							echo '<td class="d">'.$data['villeEntreprise'].'</td>';
    						echo '</tr>';
     
    					}
    					$i++;
    				}
    				mysql_close();
     
    			echo '</tbody>';
    		echo '</table>';
     
    		}
     
    	}
    ?>

    Après des heures en essayant de mettre du javascript dans du php (ce qui me parait correct à l'inverse du php dans du javascript) aucun résultat.

    Si vous avez des conseils sur la façon de procéder, des bouts de code j'en serais très reconnaissants car je vais bientôt perdre la tête , et j'aurais vraiment des problèmes de délai si je dois faire un tas de tuto javascript.
    Mes connaissances en JS se limitent à de la vérification de formulaire et de modification d'html autant dire la base (onsubmit, onchange, onblur etc...)

    Merci

  2. #2
    Membre chevronné Avatar de saymoneu
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2010
    Messages : 248
    Par défaut
    Bonjour,

    La meilleure solution (selon moi) dans votre cas va etre de charger le tableau en Ajax : http://siddh.developpez.com/articles/ajax/

    En gros ça va permettre d'effectuer votre requête de département sans avoir à recharger la page.

    Bonne lecture

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 203
    Par défaut
    Bonjour,
    il manque une donnée au problème, la quantité d'entreprises à gérer.

  4. #4
    Membre très actif

    Avatar de nicosmash
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 395
    Par défaut
    Bonjour,

    Dans les plus bref délais il faudra passer à mysqli ou PDO car mysql est devenu obsolète :
    Documentation PHP

    Si vous voulez le faire dynamiquement vous pouvez mettre un timer en javascript, qui toutes les X secondes mettra à jour la page.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 14
    Par défaut
    Bonjour, j'ai finalement réussi en reprenant des exemples d'AJAX à ma sauce.

    Pour PDO c'est prévu.

    Merci

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

Discussions similaires

  1. [AJAX] onchange sur SELECT
    Par zevulko dans le forum AJAX
    Réponses: 4
    Dernier message: 23/05/2011, 12h19
  2. onchange sur un SELECT : passage de paramètre
    Par NikoBe dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 31/10/2006, 11h14
  3. 2 actions sur evenement onchange sur champ Select
    Par falz222 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/08/2006, 20h59
  4. onChange sur un SELECT
    Par linar009 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/07/2006, 10h14
  5. [Onchange] sur checkbox selection ds une liste deroulante
    Par maxxou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/01/2006, 00h17

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