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

jQuery Discussion :

Récupérer une variable php pour jquery


Sujet :

jQuery

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 63
    Points : 42
    Points
    42
    Par défaut Récupérer une variable php pour jquery
    Bonjour à toutes et a tous,
    J'ai une boucle foreach qui crée dans mon php une div contenant des champs et bouton radio. Ce div possède une id en fonction du value de mon foreach, se qui va me permettre de différencier mes div.

    Se que je cherche à faire:
    J'ai une checkbox qui lorsqu'elle n'est pas cocher doit me cacher mon div, et me l'afficher une fois coché.
    Je ne sais pas comment (en jquery) récupérer l'id de mon div (donc ma variable value) pour identifier le div et que je veux cacher/afficher.


    Code PHP:
    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
    foreach($TabEtape as $value)
    {
    echo'<input class="etape" type="checkbox" name="'.$value['nom_etape'].'"/>
    <div id="'.$value['id_etape'].'">
    	<input class="etat" type="radio" name="etat_'.$value['nom_etape'].'" value="1"/>Valider
    	<input class="etat" type="radio" name="etat_'.$value['nom_etape'].'" id="annuler" value="2"/>Annuler
    	<input class="etat" type="radio" name="etat_'.$value['nom_etape'].'" id="decaler" value="3"/>Décaler
     
    	<label id="label_date" >Date : </label><input type="text" name="date"/>
    	<select class="heure" name="heure">
    	<option>HH</option>';
     
    	$h=0;
    	while($h <= 19)
    	{
    		$h++;
    		echo'<option value='.$h.'>'.$h.'</option>';
    	}
    	echo'</select>
    	<select class ="heure"  name="minute">
    	<option>MM</option>';
     
    	$m=0;
    	while($m <= 30)
    	{
    		$m = $m+15;
    		echo'<option value='.$m.'>'.$m.'</option>';
    	}
    	echo'</select>
    </div>
    }

  2. #2
    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
    Bonjour,

    à lire: Important : Les règles incontournables d'utilisation de ce forum.

    Ensuite pour cacher et afficher le div
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '<input class="etape" type="checkbox" name="'.$value['nom_etape'].'" onclick="$('#id_du_div').toggle();"/>
    A+.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 63
    Points : 42
    Points
    42
    Par défaut
    Dans le code que tu m'as fourni, il veut me mettre en commentaire toute la partie suivant le # . Comment faire pour qu'il ne soit pas pris en compte comme étant du commentaire ?

  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
    arf, c'est dans du code php.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<input class="etape" type="checkbox" name="'.$value['nom_etape'].'" onclick="$(\'#id_du_div\').toggle();"/>

    A+.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 63
    Points : 42
    Points
    42
    Par défaut
    Le div que je veux cacher est celui qui commence ligne 4.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="'.$value['id_etape'].'">
    Si je comprend bien ton code, tu veux utiliser le jquery directement dans le PHP ?
    J'ai essayé de mettre dans ton code la même valeur que je lui ai attribué avant, mais cela ne marche pas :s.
    Il n'y a vraiment pas moyen de récupérer la valeur de son id pour la transférer au jquery ?

    j'ai fais sa

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input class="etape" id="'.$value['nom_etape'].'" type="checkbox" value="'.$value['nom_etape'].'" onclick="$(\'#"'.$value['nom_etape'].'"\').toggle();"/>

  6. #6
    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
    Difficile de t'aider comme ça, à tu lu le lien que j'ai donné plus haut?
    As-tu la librairie jQuery dans ta page?

    A+.

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 63
    Points : 42
    Points
    42
    Par défaut
    oui j'ai lu le lien, je n'avais malheureusement pas vu qu'il y avait une section jquery. Faut-il que repost la bas ?

    Oui ma bibliothèque jquery est bien implémenter, j'ai déjà d'autre script qui tourne dans la même page.js où je veux mettre ce nouveau code.

  8. #8
    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
    Ce que parle le lien c'est que sur le forum javascript et ses sous forum, c'est le code html généré que tu dois poster mais pas le code php.

    A+.

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 63
    Points : 42
    Points
    42
    Par défaut
    D'accord j'y penserais pour la prochaine fois.

    Sinon coté javascript/jquery j'ai essayé des chose du genre sa

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var val = $('.etape').val();
    	var etape =  '#'+val;
    	alert(document.getElementById(etape));
    	alert($(etape));
    ou même de concaténer directement dans getelement ou l'appel en jquery, mais cela me retourne null du coté javascript et objectobject coté jquery.
    Comment récupérer cette foutu id ???

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 274
    Points : 114
    Points
    114
    Par défaut
    Ton div ce trouvant après ton champs regarde du coter de next()

    exemple
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var id = $(".etape:first").next('div').attr('id'); // Récupère l'id si besoin
    $(".etape:first").next('div').hide(); // masque le div
    Tu remarquera le first qui permet de ciblé ton premier input car il porte tous la même class mais seul le premier est hors du div et les autres sont dedans d'où une part des ton problème je pense

  11. #11
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Il est rarement nécessaire de multiplier les ID (chaque ID doit être unique) pour être capable de travailler.

    Un exemple, il suffit de copier-coller le code pour le tester :

    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
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    <!DOCTYPE html>
    <html lang="fr" dir="ltr">
    <head>
    	<meta charset="utf-8">
    	<meta name="viewport" content="initial-scale=1.0">
    	<meta name="author" content="Daniel Hagnoul">
    	<title>Forum jQuery</title>
    	<script src="http://cdnjs.cloudflare.com/ajax/libs/headjs/0.99/head.min.js"></script>
    	<script>
    		"use strict";
     
    		head.js( 
    			"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js", 
    			"http://code.jquery.com/jquery-2.0.0.min.js",
    			"http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/i18n/jquery-ui-i18n.min.js",
    			"http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js",
    			"http://danielhagnoul.developpez.com/lib/dvjh/base.js",
    			function(){
     
     
    				$( function(){
     
    					/*
    					 * Dans l'array etats, on gère autant d'objets qu'il y
    					 * a de division ayant la classe "choix".
    					 */
    					var jObjCheckbox = $( "input[type='checkbox']", "#monForm" ),
    						jObjDivisions = $( "div.choix", "#monForm" ),
    						etats = [ {}, {} ];
     
    					// inutile, voir CSS !
    					//jObjDivisions.hide();
     
    					// debug console, touche F12
    					console.log( jObjCheckbox, jObjDivisions )
     
    					/*
    					 * Montre la "div" ayant la classe "choix" qui
    					 * suit le checkbox sélectionné
    					 */
    					jObjCheckbox.on( "change", function(){
    						$( this ).parent( "label" ).next( "div.choix" ).toggle();
    					});
     
    					/*
    					 * On intercepte les événements "change" sur les éléments
    					 * "input" et "select" contenus dans les divisions
    					 * ayant la classe "choix".
    					 * 
    					 * Gère le contenu de deux objets A et B.
    					 * 
    					 * Pour attribuer le bon objet à objEtat lorsqu'il
    					 * y a plus de deux objets, il suffit d'utiliser un switch.
    					 */
    					jObjDivisions.on( "change", "input, select", function( event ){
    						var jObjDiv = $( event.delegateTarget ),
    							etat = jObjDiv.find( "input[type='radio']" ).eq( 0 ).attr( "name" ).slice( -1 ),
    							objEtat = ( etat === "A" ) ? ( etats[ 0 ] ) : ( etats[ 1 ] );
     
    						objEtat[ "date" ] = $( "input[type='text']" , jObjDiv ).val();
    						objEtat[ "heure" ] = $( "select[name='heure']" , jObjDiv ).val();
    						objEtat[ "minute" ] = $( "select[name='minute']" , jObjDiv ).val();
    						objEtat[ "radio" ] = $( "input[type='radio']:checked" , jObjDiv ).val();
     
    						// debug console, touche F12
    						console.clear();
    						console.log( "Objets etat : ")
     
    						for ( var i in etats ){
    							console.log( i, etats[ i ] );
     
    							for ( var j in etats[ i ] ){
    								console.log( i, j, etats[ i ][ j ] );
    							}
    						}
    					});			
     
    				});
     
    				$( window ).load( function(){
     
    				});
    			}
    		);
    	</script>
    	<link href='http://fonts.googleapis.com/css?family=Sofia|Ubuntu:400|Kreon'>
    	<link rel="stylesheet" href="http://danielhagnoul.developpez.com/styles/dvjhRemBase.css">
    	<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/sunny/jquery-ui.min.css">
    	<style>
    		/* TEST -- Nota bene : ici 1 rem est égal à 1 px, voir dvjhRemBase.css */
    		div.choix { display: none; }
    	</style>
    </head>
    <body>
    	<header>
    		<hgroup>
    			<h1>Forum jQuery</h1>
    			<h2>
    				<a href="">Lien</a>
    			</h2>
    		</hgroup>
    	</header>
    	<section class="conteneur">
     
    <form id="monForm">
     
    	<label>Choix A :<input type="checkbox"></label>
    	<div class="choix">
    		<label><input type="radio" name="etatA" value="1">Valider</label>
    		<label><input type="radio" name="etatA" value="2">Annuler</label>
    		<label><input type="radio" name="etatA" value="3">Décaler</label>
    		<label>Date :<input type="text" name="date"></label>
    		<select name="heure">
    		    <option>HH</option>
    		    <option value="1">HH1</option>
    		    <option value="2">HH2</option>
    		    <option value="3">HH3</option>
    		</select>
    		<select name="minute">
    		    <option>MM</option>
    		    <option value="1">MM1</option>
    		    <option value="2">MM2</option>
    		    <option value="3">MM3</option>
    		</select>
    	</div>
     
    	<label>Choix B :<input type="checkbox"></label>
    	<div class="choix">
    		<label><input type="radio" name="etatB" value="1">Valider</label>
    		<label><input type="radio" name="etatB" value="2">Annuler</label>
    		<label><input type="radio" name="etatB" value="3">Décaler</label>
    		<label>Date : </label><input type="text" name="date">
    		<select name="heure">
    		    <option>HH</option>
    		    <option value="1">HH1</option>
    		    <option value="2">HH2</option>
    		    <option value="3">HH3</option>
    		</select>
    		<select name="minute">
    		    <option>MM</option>
    		    <option value="1">MM1</option>
    		    <option value="2">MM2</option>
    		    <option value="3">MM3</option>
    		</select>
    	</div>
    </form>	
     
    	</section>
    	<footer itemscope itemtype="http://danielhagnoul.developpez.com/">
    		<time datetime="2013-06-07T23:56:45.759+02:00" pubdate>2013-06-07T23:56:45.759+02:00</time>
    		<span itemprop="name">Daniel Hagnoul</span>
    		<a href="http://www.developpez.net/forums/u285162/danielhagnoul/" itemprop="url">@danielhagnoul</a>
    		<a href="http://danielhagnoul.developpez.com/" itemprop="url">Mon cahier d’exercices</a>
    		<a href="http://javascript.developpez.com/faq/jquery/" itemprop="url">FAQ</a>
    		<a href="http://javascript.developpez.com/cours/?page=frameworks#jquery" itemprop="url">Tutoriels</a>
    	</footer>
    </body>
    </html>

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  12. #12
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 63
    Points : 42
    Points
    42
    Par défaut
    @splifferwolf:
    Citation Envoyé par splifferwolf Voir le message
    Tu remarquera le first qui permet de ciblé ton premier input car il porte tous la même class mais seul le premier est hors du div et les autres sont dedans d'où une part des ton problème je pense
    J'arrive bien à récupérer l'id de mon div qui suit la première checkbox. C'est un bon début, mais visiblement tu n'as pas bien compris le but.

    Donc j'ai, dans ma BDD, une table étape qui va être parcouru et qui va créer pour chaque étape, une checkbox et un div contenant divers champs.
    La checkbox permet de cacher ou affiché le div qui suit. Donc mes checkbox sont bien en dehors de mes div.
    Donc il faudrait que j'adapte ton code pour récupérer l'id qui suit la checkbox sur laquelle j'agit.


    @danielhagnoul:
    C'est exactement sa que je veux faire, mais avec des objets qui n'ont pas un nombre définit. C'est comme si dans ton exemple on pouvait ajouter les objets b,c,d puis retirer, si l'envie nous prend, c.

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

Discussions similaires

  1. [PHP-JS] Récupérer une variable php dans un fichier javascript
    Par zoom61 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 03/11/2006, 11h00
  2. récupérer une variable php dans un vbscript
    Par el_butcho dans le forum VBScript
    Réponses: 3
    Dernier message: 14/09/2006, 11h39
  3. [SQL] Puis-je insérer une variable PHP pour déterminer ORDER BY ?
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/05/2006, 01h41
  4. [JSTL] Récupérer une variable JSTL pour l'utiliser avec JSP
    Par pitit777 dans le forum Taglibs
    Réponses: 3
    Dernier message: 28/03/2006, 09h47
  5. [Applet] récupérer une variable PHP ?
    Par Shiryu44 dans le forum Applets
    Réponses: 10
    Dernier message: 22/03/2005, 11h39

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