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

PHP & Base de données Discussion :

Comment retirer d'un menu déroulant une sélection faite dans un autre menu déroulant


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 37
    Par défaut Comment retirer d'un menu déroulant une sélection faite dans un autre menu déroulant
    Bonjour à tous

    Je m'approche de vous pour avoir quelques conseils, je dois effectuer une mission un peu spécifique auprès de mon entreprise dans laquelle je suis en stage.

    et je bute sur un souci qui est le suivant

    j'ai 12 postes à pourvoir en fonction de tranches horaires et du nombre d'heures effectuées par personne dans la journée.

    Toutefois je bute dès le départ sur la chose suivante, imaginons la tranche horaire 12h-13h où j'ai 5 postes à pourvoir. (pour faire simple car après ça commence à être un peu tordu

    Dans le premier poste, j'ai un menu déroulant, je sélectionne la personne, ensuite pour le second poste, j'ai un menu déroulant dans laquelle je peux choisir une autre personne toutefois, je ne veux pas que la personne qui a été choisi pour le premier poste apparaisse pour le second poste (ou alors c'est des jumeaux ou la personne possède le don d'ubiquité )

    J'ai commencé à bidouiller avec mes maigres connaissances et j'ai quelque chose mais la personne sélectionnée n'est pas retirée du menu déroulant suivant et je dois faire la même chose pour les autres postes de la même tranche horaire (pour les autres tranches horaires on verra cela plus tard.

    Y'a t il un moyen de le faire ou ce n'est pas possible et je dois partir sur autre chose en sachant que je suis carrément néophyte sur du javascript ou de l'ajax par ex

    Merci de m'avoir lu et de vos futurs conseils

    Cordialement

    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
     
    <form method="POST" action="" target="">
    <select name="agent">
    	<?
    		mysql_connect("localhost",USER,PASS);
    		mysql_select_db(BASE);
    		$req="SELECT id_amplitudes,lunamdeb,id_agent_,nom,prenom,id_poste FROM amplitudes JOIN agents ON amplitudes.id_agent_=agents.id_agent JOIN autoriser ON autoriser.id_agent=agents.id_agent WHERE lunamdeb='12:00:00' AND id_poste=6";
    		$id=mysql_query($req);
    		$i=0;
    		while($resultat=mysql_fetch_row($id)) {
    			echo '<option value="'.$resultat[0].'">'.$resultat[3].' - '.$resultat[4].'</option>';
    			$i++;
    		}
    	?>
    </select>
    <input type="submit" value="valider" />
    </form>
     
    <select>
    	<?
    		if(isset($_POST['agent'])) {
    		$agent=mysql_real_escape_string($_POST['agent']);	
    		$req="SELECT id_amplitudes,lunamdeb,id_agent_,nom,prenom,id_poste FROM amplitudes JOIN agents ON amplitudes.id_agent_=agents.id_agent JOIN autoriser ON autoriser.id_agent=agents.id_agent WHERE lunamdeb='12:00:00' AND id_poste=7";
    		$id=mysql_query($req);
    		$i=0;
    		while($resultat=mysql_fetch_row($id)) {
    			echo '<option value="'.$resultat[0].'">'.$resultat[3].' - '.$resultat[4].'</option>';
    			$i++;
    		}
    		}
    	?>
    </select>

  2. #2
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Je m'approche de vous pour avoir quelques conseils
    Houlà, pas trop près quand même

    Ton problème se résous assez simplement avec JavaScript, imaginons qu'on choisisse jQuery et que les listes soient voisines (au sens DOM):
    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
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script type="text/javascript">
    jQuery(function ($) {
        $('select').change(function () {
            var current_selection = $(this).val();
            $(this).siblings('select').each(function () {
                $('option', this).each(function () {
                    if ($(this).attr('value') == current_selection)
                        $(this).attr('disabled', 'disabled');
                });
            });
            $(this).attr('disabled', 'disabled');
        });
    });
    </script>
    <select name="a" id="input0">
        <option value="1">Jean</option>
        <option value="2">Jacques</option>
        <option value="3">Jeanine</option>
        <option value="4">Jeremy</option>
        <option value="5">Jade</option>
    </select>
    <select name="b" id="input1">
        <option value="1">Jean</option>
        <option value="2">Jacques</option>
        <option value="3">Jeanine</option>
        <option value="4">Jeremy</option>
        <option value="5">Jade</option>
    </select>
    <select name="c" id="input2">
        <option value="1">Jean</option>
        <option value="2">Jacques</option>
        <option value="3">Jeanine</option>
        <option value="4">Jeremy</option>
        <option value="5">Jade</option>
    </select>
    ça fait ton affaire ?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 37
    Par défaut


    Je te rassure pas trop près non plus, je crois que tu n'a pas d'atour pour je fasse un rapprochement très très ....

    Je vais regarder ta solution et l'adapter à mes besoins, de mon côté j'ai cherché aussi et en bidouillant j'arrive pour l'instant à ce genre de solution

    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
     
    <form method="POST" action="" target="">
    <select name="agent">
    	<?
    		mysql_connect("localhost",USER,PASS);
    		mysql_select_db(BASE);
    		$req="SELECT id_amplitudes,lunamdeb,id_agent_,nom,prenom,id_poste FROM amplitudes JOIN agents ON amplitudes.id_agent_=agents.id_agent JOIN autoriser ON autoriser.id_agent=agents.id_agent WHERE lunamdeb='12:00:00' AND id_poste=6";
    		$id=mysql_query($req);
    		$i=0;
    		while($resultat=mysql_fetch_row($id)) {
    			echo '<option value="'.$resultat[2].'">'.$resultat[3].' - '.$resultat[4].'</option>';
    			$i++;
    		}
    	?>
    </select>
    <input type="submit" value="valider" />
    </form>
     
    <select>
    	<?
    		if(isset($_POST['agent'])) {
    		$agent=mysql_real_escape_string($_POST['agent']);	
    		$moins='SELECT id_agent,nom FROM agents WHERE id_agent NOT LIKE "'.$agent.'" GROUP BY nom ASC';
    		$req='SELECT id_amplitudes,lunamdeb,id_agent_,nom,prenom,id_poste FROM amplitudes JOIN agents ON amplitudes.id_agent_=agents.id_agent JOIN autoriser ON autoriser.id_agent=agents.id_agent WHERE lunamdeb='12:00:00' AND id_poste=7 AND id_agent NOT LIKE "'.$agent.'" GROUP BY nom ASC';
    		$id=mysql_query($req);
    		$i=0;
    		while($resultat=mysql_fetch_row($id)) {
    			echo '<option value="'.$resultat[2].'">'.$resultat[3].' - '.$resultat[4].'</option>';
    			$i++;
    		}
    		}
    	?>
    </select>
    Toutefois si je fais un écho sur $moins, ça marche impecc mais si je fais (comme sur le code ci-dessus) avec $req ça ne marche pas je pense que je dois avoir une erreur dans le positionnement du NOT LIKE ou un truc du genre.

    En attendant je vais regarder ton astuce et continuer à chercher la réponse à ce blocage et je te rassure j'essaie de me tenir éloigné

  4. #4
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Ce que je t'ai propose n'est ni une astuce ni une bidouille, c'est comme ça que j'aurais fait.

    Le problème se résous tout seul quand on pense coté client, si tu veux te casser la tête à le faire coté serveur, c'est toi qui voit

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 37
    Par défaut
    ^^ Je vois c'est vrai qu'on nous a pas appris spécialement à réfléchir côté client en plus javascript on nous l'a jamais enseigné c'est vraiment de l'apprentissage sur le tas et j'avoue avoir un peu de mal à comprendre même en lisant des tutos. (je sais la honte )

    Mais il y a des logiques qui ne le sont pas pour moi (ou alors faudrait qu'on me l'explique autrement mais sans le fouet ^^ ).

    Donc hop hop je vais regarder ça et faire ce que je peux pour avancer dans le javascript

  6. #6
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    C'est assez complexe coté serveur d'exclure successivement plusieurs valeurs de différentes listes (il faut penser à garder les listes en mémoire, à se souvenir de quels items on doit enlever, de gêrer les requêtes, les sessions etc.) alors que notre besoin est purement client: il s'agit d'impacter le comportement de l'interface après tout.

    La logique du script JS en exemple est en revanche toute simple: quand on sélectionne un item dans une liste, on désactive cet item dans toutes les autres listes adjacentes.

    JavaScript c'est plus simple qu'il n'y parait et une fois qu'on a commencé à comprendre, c'est en réalité plus compliqué qu'il n'y parait
    En d'autres termes, on est parfois effrayé par la complexité apparente du langage, et une fois qu'on est dedans et qu'on a commencé à avoir quelques résultats sympas, on se rends compte que la complexité qui nous effrayait au départ, c'est l'arbre qui cache la forêt et que pour comprendre, on va en ch*er. Mais honnêtement, ça vaut le coup.

    Alors pour t'éviter de crawler le web comme un débile, voici quelques ressources qui m'ont été très utiles:
    Ressources DVP

    Ressources externes

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 37
    Par défaut
    Oui effectivement c'est vrai que vu comme ça ça paraît normal (comme quoi à l'école on nous enseigne pas tout ^^ )

    Il est vrai que je partais sur du serveur car comme je le disais dans le premier post, en fait c'est plus compliqué qu'il n'y paraît.

    En effet, dans la première tranche horaire, j'ai 5 postes à remplir (sur les 12), donc ça va il faut que j'en retire un à chaque fois donc je pense que c'est cumulable (d'où ma recherche de solution de ce côté là). en sachant qu'il faut que je prenne en compte le fait que des agents peuvent être absent (vacances, maladie, etc...)

    Ensuite, ça va commencer à devenir marrant car dans la seconde tranche horaire, je rajoute ceux qui commence leur journée (en service publique) plus ceux de l'heure d'avant moins les agents indisponibles et également compter leur heure de service

    Et ainsi de suite par contre vers la fin de la journée, c'est la même chose mais je dois prendre en compte du coup ceux qui ont fait leur 4 heures de présence dans la journée et les retirer de la liste pour la fin de la journée et pareil pour les autres jours en sachant qu'à la fin de la semaine on retire les agents qui ont fait leur 20h de présence. (voilà je crois que j'ai rien oublié ou presque -- ah si il y a ceux dont leurs présences peuvent être obligatoire mais pas spécifiquement en service public (même si ils peuvent y aller car ils ont des accès)

    Comme tu vois du super simple et c'est pour ça que je pensais plus côté serveur que côté client vu les spécifications un peu tordues (voire beaucoup) qu'on m'a demandé

    En tout cas je te fais un gros merci, je vais mettre tes liens dans un petit dossier en favori pour les consulter rapidement (il me reste 3 semaines pour finir tout ça ) ça m'évitera de crawler (j'aime bien l'expression )

  8. #8
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Je vois, avec des specs pareilles c'est effectivement loin d'être aussi simple. Il va falloir t'attacher à la tâche la plus complexe de ton travail: la conception

    Garde à l'esprit également que l'utilisateur du système n'est pas ton ami, au mieux il est débile (y clique n'importe où, mets des données fausses ou erronées dans les formulaires, utilise IE6 et n'a pas d'anti-virus etc.), au pire il est pervers (et il va tenter de détourner ton appli pour son propre usage).

    Dans ton cas, imagine 5 minutes que les contraintes que tu as décrit soient exprimées coté client avec JavaScript, imagine ensuite qu'un utilisateur du système sera le neveu-de-la-cousine-du-gars-qui-est-copain-du-comptable (et que c'est comme ça qu'il à eu le poste), enfin imagine qu'il touche un peu au web et qu'il soit assez malin pour comprendre comment fonctionne ton bouzin, alors à coup sûr, il saura le détourner pour glander peinard pendant que le système informatique pense qu'il à bien bossé, il aura peut être même une promotion !

    La morale de ma petite histoire c'est que c'est super d'ajouter du dynamisme coté client (dynamisme = facilité d'utilisation = coûts d'utilisation réduits), mais ça doit toujours être accompagné d'une logique de validation coté serveur en béton armé. Tu dois toujours partir du principe que tout ce qui vient de l'utilisateur c'est le mal et dans ton système, l'utilisateur c'est la database donc la database c'est le mal. En somme vérifie, contrôle, nettoie, teste, teste et teste encore

    Sur ce, bon courage

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 37
    Par défaut
    Oui c'est clair, ils cherchent bien

    Sinon c'est vrai que j'aurais pas le temps de tout mettre en place car je suis tout seul dans mon coin que je travaille sur une machine sans connexion internet (j'utilise un pc qui en a une ils sont gentils )

    Et c'est vrai que le travail de vérification j'aurais vraiment pas le temps en moins de 3 semaines de tout assimilés et de tout rendre avant la fin de mon stage, donc je bâcle un peu (pas de pdo, pas de sécu sous la main rien ) mais je reviendrais les voir après mon stage (j'aime pas le travail bâclé mais les faits sont là malheureusement ).

    Quant aux personnes, je te rassure, la plus douée arrivée à rentrer des plus ou des moins dans cases excels (oui oui, la fille de la belle soeur du concierge par alliance avec le vendeur du poisson local ou un truc du genre) et comme j'ai restreint le monde à 5 personnes à chacun un mot de passe, je vais vite savoir qui fait l'andouille.

    Quant au planning, je suis en même temps en train de chercher pour faire un fichier genre print.css quand la personne aura validé son planning ça évitera les grosses gaffes

    En tout cas merci pour les encouragements, car je sens que ma cafetière va devenir mon ami et mon lit mon ennemi ^^ pour les 3 prochaines semaines

  10. #10
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    3 semaines pour faire ce truc, c'est tout juste le temps de dev pour un développeur chevronné. La tendance actuelle c'est la réduction à tout prix du coût donc exit l'analyse, exit la conception, exit les tests, exit la validation... On passe directement du prototype à la production (ce mode de fonctionnement à d'ailleurs fait le lit des frameworks en tout genre - mais on s'écarte du sujet).

    Ce qui est crétin dans ce système, c'est que c'est à toi, petit développeur, d'expliquer au comptable qu'un design bancal c'est 3x le coût du projet en maintenance et qu'il aurait mieux fait de réaliser un amortissement sur un code propre et réutilisable (sisi c'est tout à fait possible) alors que lui il pense au bilan de cette année... A l'arrivé, on se retrouve avec des abberations du style 5 ingénieurs à plein temps qui maintiennent pendant des années un soft pondu dans la douleur par un stagiaire en quelques semaines (je le dis sans malice ni sans jeter la pierre au stagiaire qui bien souvent est à plaindre dans ce scénario - surtout vu qu'il est pas payé).

    La tâche la plus ardue que tu auras dans ta vie de développeur sera selon moi de trouver un compromis entre une procédure carrée et la réalité. Garde un esprit ouvert et critique, documente-toi à fond et remets sans honte ton travail sur l'ouvrage, ce sont ces 3 vertus qui feront de toi un bon développeur, pas ta compétence technique (la technique ça s'apprends, voire ça s'achète - de toute façon, inutile d'essayer de draguer les filles avec ça crois-moi). A l'impossible nul n'est tenu, si ton boss ne comprends pas ça, ce n'est pas la peine que tu t'acharnes dans cette boite.

    Quand à l'addition à la caféine, c'est rien, c'est le métier qui rentre
    Le développeur, c'est une machine qui transforme le café en ligne de code

  11. #11
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 37
    Par défaut
    Hé oui 3 semaines
    En fait pour être précis, je suis en stage de 10 semaines chez eux et tu vas voir ça va être assez folklorique

    1ère semaine, on me fournit un cahier des charges (qu'ils ont fait dans les derniers jours avant mon arrivée alors qu'ils savaient que je venais depuis octobre), donc je travaille dessus.

    2ème semaine, on me signale que finalement c'est pas la bonne version du cahier des charges et on me fournis un autre qui est effectivement plus complet
    Donc je recommence le travail la BDD passe de 22 tables à 20 tables (ouais :/)

    3ème semaine, j'avance bien mais finalement ils estiment qu'il est complexe dans sa manipulation et me demande si je peux pas en faire une version plus simple dans les manipulations (soit il est vrai que j'avais mis pas mal de chose juste pour pouvoir travailler sur la génération du planning - qui m'a amené à poser la question aujourd'hui)

    4ème semaine, je remets à zéro tout ce que j'ai fait ou presque, la simplification au final, ils la trouvent bien mais finalement même si c'est bien mais il y a encore trop de chose et du coup, je repars de 0 entre la fin de la 4ème semaine et la 5ème et la nouvelle BDD passe de 20 tables à 14 (re ouais :/)

    de la 5ème semaine jusqu'à 7ème semaine, on m'emmerde plus, j'avance relativement, je mets de la simplification (avec du jquery type time et date picker) avec pas mal d'option pour leur simplifier la vie et auxquelles ils n'avaient pas prévue

    et là on vient de me dire de dépêcher car je traîne un peu alors que je leur avais signalé que même si ça fonctionné c'était pas sécurisé ni optimisé car j'ai passé outre pour que ce soit fait rapidement et qu'une personne seule et très chevronnée c'est au moins 1/2 mois (comme quoi j'étais pas loin de ce que tu as annoncé)

    Comme j'ai une conscience pro même si ils le méritent pas je reviens quand même pour bien finir le travail

    Voilà voilà et sinon j'adore ta citation je crois que je vais te la piquer si tu me permets ^^

  12. #12
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 37
    Par défaut
    De retour,

    Donc je progresse (par contre Benjamin je n'ai pas eu le temps de potasser les liens que tu m'as donné mais je le ferais au plus vite du coup je continue malgré tout dans la voie que j'ai commencé )

    J'ai un petit souci, dans mon deuxième menu déroulant, ma requête fonctionne très bien (je l'ai essayé directement sur la base sous MAMP) mais quand je passe par le code, plus rien ne s'affiche dans le menu déroulant (euh c'est normal ou j'ai loupé quelque chose d'important)

    Enfin j'ai noté que dès que je mettais un NOT LIKE que ça fonctionnait plus, ça permettait de retirer l'agent sélectionné, cette requête seule marche très bien mais combiné ben euh ça coince, possibilité de contourner ou pas

    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
     
    <form method="POST" action="" target="">
    	<select name="agent">
    		<?
    			mysql_connect("localhost",USER,PASS);
    			mysql_select_db(BASE);
    			$req="SELECT id_amplitudes,lunamdeb,id_agent_,nom,prenom,id_poste FROM amplitudes JOIN agents ON amplitudes.id_agent_=agents.id_agent JOIN autoriser ON autoriser.id_agent=agents.id_agent WHERE lunamdeb='12:00:00' AND id_poste=6 GROUP BY nom ASC";
    			$id=mysql_query($req);
    			$i=0;
    			while($resultat=mysql_fetch_row($id))
    			{
    				echo '<option value="'.$resultat[2].'">'.$resultat[3].' - '.$resultat[4].'</option>';
    				$i++;
    			}
    		?>
    	</select>
    	<input type="submit" value="Valider" />	
    </form>
    <br />
    <select>
    	<?
    		if(isset($_POST['agent'])){
    			$agent=mysql_real_escape_string($_POST['agent']);
    			//$moins='SELECT id_agent,nom,prenom FROM agents WHERE id_agent NOT LIKE "'.$agent.'" GROUP BY nom ASC;   Cette requête fonctionne bien et m'a inspiré pour faire la suivante
    			$req='SELECT id_amplitudes,lunamdeb,id_agent_,nom,prenom,id_poste FROM amplitudes JOIN agents ON amplitudes.id_agent_=agents.id_agent JOIN autoriser ON autoriser.id_agent=agents.id_agent WHERE lunamdeb="12:00:00" AND id_poste=7 AND id_agent NOT LIKE "'.$agent.'" GROUP BY nom ASC';
    			$id="mysql_query($req);
    			$i=0;
    			while($resultat=mysql_fetch_row($id))
    			{
    				echo '<option value="'.$resultat[2].'">'.$resultat[3].' - '.$resultat[4].'</option>';
    				$i++;
    			}
    			}
    	?>
    </select>

  13. #13
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 37
    Par défaut
    Réup de mon problème

    Donc j'ai progressé, je parviens à éliminer une personne après sa sélection dans un menu déroulant et pour que l'administration se voit confirmé sa sélection, le nom apparaît.
    Dans le second menu déroulant, le nom est bien manquant et on peut choisir quelqu'un d'autre pour le poste mais quand on valide le second choix, le nom de la personne lors du premier choix disparaît pour laisser la place au second

    Egalement, dans un troisième menu, je choisis encore une autre personne mais malheureusement rien ne s'affiche dans le menu déroulant ne me donnant aucune possibilité de valider quoique ce soit.

    Si vous pouviez me donner des astuces ou conseils, merci à vous

    Voici pour le premier menu déroulant + le code d'affichage du sélectionné

    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
     
    <form method="POST" action="" target="" >
    	<select name="agent">
    		<?
    			mysql_connect("localhost",USER,PASS);
    			mysql_select_db(BASE);
    			$totale='SELECT id_agent,nom,prenom FROM agents
    				JOIN indisponibilites on indisponibilites.id_agent_=agents.id_agent
    				JOIN autoriser on autoriser.id_agent_=agents.id_agent
    				JOIN amplitudes on amplitudes.id_agent_=agents.id_agent
    				WHERE congesdeb NOT LIKE "2012-09-03" 
    				AND congesfin NOT LIKE "2012-09-03"
    				AND dateindispo NOT LIKE "2012-09-03"
    				AND debutindispo NOT LIKE "12:00:00"
    				AND finindispo NOT LIKE "13:00:00"
    				AND id_poste_=6
    				AND lunamdeb BETWEEN "12:00:00" AND "13:00:00"
    				GROUP BY nom ASC';
    				$id=mysql_query($totale);
    				$i=0;
    				while($resultat=mysql_fetch_row($id))
    				{
    					echo '<option value="'/.$resultat[0].'">'.$resultat[1].' - '.$resultat[2].'</option>
    					$i++;
    				}
    		?>
    	</select>
    	<input type="submit" value="Valider" />
    </form>
    <?
    	if(isset($_POST['agent'])){
    		$agent=mysql_real_escape_string($_POST['agent']);
    		$affiche='SELECT nom,prenom FROM agents WHERE id_agent="'.$agent.'"';
    		$id=mysql_query($affiche);
    		$i=0;
    		while($resultat=mysql_fetch_row($id))
    		{
    			echo $resultat[0].' - '.$resultat[1];
    		}
    	}
    ?>
    Voici le code pour le second menu déroulant + l'affichage du nom qui fait disparaître le premier sélectionné

    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
     
    <form method="POST" action="" target="" >
    	<select name="agent1>
    		<?
    			if(isset($_POST['agent'])){
                            $agent=mysql_real_escape_string($_POST['agent']);
    			$totale='SELECT id_agent,nom,prenom FROM agents
    				JOIN indisponibilites on indisponibilites.id_agent_=agents.id_agent
    				JOIN autoriser on autoriser.id_agent_=agents.id_agent
    				JOIN amplitudes on amplitudes.id_agent_=agents.id_agent
    				WHERE congesdeb NOT LIKE "2012-09-03" 
    				AND congesfin NOT LIKE "2012-09-03"
    				AND dateindispo NOT LIKE "2012-09-03"
    				AND debutindispo NOT LIKE "12:00:00"
    				AND finindispo NOT LIKE "13:00:00"
    				AND id_poste_=7
    				AND lunamdeb BETWEEN "12:00:00" AND "13:00:00"
    				AND id_agent NOT LIKE "'.$agent.'"
    				GROUP BY nom ASC';
    				$id=mysql_query($totale);
    				$i=0;
    				while($resultat=mysql_fetch_row($id))
    				{
    					echo '<option value="'.$resultat[0].'">'.$resultat[1].' - '.$resultat[2].'</option>
    					$i++;
    				}
                           }
    		?>
    	</select>
    	<input type="submit" value="Valider" />
    </form>
    <?
    	if(isset($_POST['agent1])){
    		$agent1=mysql_real_escape_string($_POST['agent1');
    		$affiche='SELECT nom,prenom FROM agents WHERE id_agent="'.$agent1.'"';
    		$id=mysql_query($affiche);
    		$i=0;
    		while($resultat=mysql_fetch_row($id))
    		{
    			echo $resultat[0].' - '.$resultat[1];
    		}
    	}
    ?>
    et le code du 3ème menu déroulant (mais sans l'affichage car le problème n'est toujours pas résolu pour le second)

    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
     
    <form method="POST" action="" target="" >
    	<select name="agent2>
    		<?
    			if(isset($_POST['agent'] & isset($_POST['agent1'])){
                            $agent=mysql_real_escape_string($_POST['agent']);
                            $agent1=mysql_real_escape_string($_POST['agent1']);
    			$totale='SELECT id_agent,nom,prenom FROM agents
    				JOIN indisponibilites on indisponibilites.id_agent_=agents.id_agent
    				JOIN autoriser on autoriser.id_agent_=agents.id_agent
    				JOIN amplitudes on amplitudes.id_agent_=agents.id_agent
    				WHERE congesdeb NOT LIKE "2012-09-03" 
    				AND congesfin NOT LIKE "2012-09-03"
    				AND dateindispo NOT LIKE "2012-09-03"
    				AND debutindispo NOT LIKE "12:00:00"
    				AND finindispo NOT LIKE "13:00:00"
    				AND id_poste_=7
    				AND lunamdeb BETWEEN "12:00:00" AND "13:00:00"
    				AND id_agent NOT IN ("'.$agent.'","'.$agent1.'")
    				GROUP BY nom ASC';
    				$id=mysql_query($totale);
    				$i=0;
    				while($resultat=mysql_fetch_row($id))
    				{
    					echo '<option value="'/.$resultat[0].'">'.$resultat[1].' - '.$resultat[2].'</option>
    					$i++;
    				}
                            }
    		?>
    	</select>
    	<input type="submit" value="Valider" />
    </form>
    Merci par avance une nouvelle fois

  14. #14
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    J'ai pas vraiment le temps de regarder dans le détail mais déjà, il y a des erreurs de syntaxe (des chaines de caractères mal fermées), tu devrais utiliser un IDE digne de ce nom comme Eclipse PDT ou Netbeans qui grâce à l'analyse syntaxique te préviennent de ce genre d'erreurs.

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/03/2013, 19h23
  2. Remplir un Spinner en fonction de la sélection faite dans un autre
    Par Yerffoj21 dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 02/04/2012, 01h46
  3. Comment faire défilier des ListView depuis une sélection ?
    Par pagoa dans le forum Composants graphiques
    Réponses: 6
    Dernier message: 10/02/2012, 23h25
  4. Réponses: 3
    Dernier message: 20/07/2009, 14h24
  5. Réponses: 2
    Dernier message: 24/08/2006, 12h33

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