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 :

Comment passer un paramètre dans un ID


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2009
    Messages
    637
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 637
    Par défaut Comment passer un paramètre dans un ID
    Bonjour,

    Je cherche à passer un paramètre pour différencier plusieurs composants,
    le composant liste :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <div id="select" class="select">
     <span id="select_text" class="select_text"><?php echo $loc_selected[0]->loc_nom; ?></span> <!-- Container select -->
     <img id="_select_opn" class="_select_opn" src="public/images/_select_opn.png"> <!-- Bouton affiche/masque la liste -->
     <div id="_select_list" class="select_list"> <!-- Si liste ouverte on peut sélectionner plusieurs ass sans fermer -->
      <span id="loc_selected" style="display: block;"><?php echo $loc_selected[0]->loc_nom; ?></span> <!-- Si clique, on ferme la liste, idem à bouton  -->
      <span class="_optgroup">Groupe ...</span>
      <?php 
      for ($i=0;$i<sizeof($ass_selected);$i++) {
      ?>
      <?php if ($i>0) { ?><br /><?php } ?><input type="checkbox" id="ass<?php echo $ass_selected[$i]->ass_code;?>" /> <label for="ass<?php echo $ass_selected[$i]->ass_code;?>" class="test"><?php echo sprintf("%02d",$ass_selected[$i]->ass_code).' - '.$ass_selected[$i]->ass_nom; ?>
      <?php } ?>
    </div> 
    </div>

    Ce que je cherche à faire, c'est placer 2 composants liste ou plus sur la même page qui utiliseront des requêtes SQL différentes... Pour se faire, je passe un paramètre dans l'ID pour les différencier, enfin, je ne sais si c'est la bonne méthode non plus . Le paramètre une fois passé, est récupéré dans le script, mais voila ça ne fonctionne pas...

    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
    <div id="select_ass" class="select">
     <span id="text_ass" class="select_text"><?php echo $loc_selected[0]->loc_nom; ?></span> <!-- Container select -->
     <img id="_select_opn" class="_select_opn" src="public/images/_select_opn.png"> <!-- Bouton affiche/masque la liste -->
     <div id="list_ass" class="select_list"> <!-- Si liste ouverte on peut sélectionner plusieurs ass sans fermer -->
      <span id="loc_selected" style="display: block;"><?php echo $loc_selected[0]->loc_nom; ?></span> <!-- Si clique, on ferme la liste, idem à bouton  -->
      <span class="_optgroup">Groupe ...</span>
      <?php 
      for ($i=0;$i<sizeof($ass_selected);$i++) {
      ?>
      <?php if ($i>0) { ?><br /><?php } ?><input type="checkbox" id="ass<?php echo $ass_selected[$i]->ass_code;?>" /> <label for="ass<?php echo $ass_selected[$i]->ass_code;?>" class="test"><?php echo sprintf("%02d",$ass_selected[$i]->ass_code).' - '.$ass_selected[$i]->ass_nom; ?>
      <?php } ?>
    </div> 
    </div>
    
    <div id="select_speleo" class="select">
     <span id="text_speleo" class="select_text"><?php echo $loc_selected[0]->loc_nom; ?></span> <!-- Container select -->
     <img id="_select_opn" class="_select_opn" src="public/images/_select_opn.png"> <!-- Bouton affiche/masque la liste -->
     <div id="list_speleo" class="select_list"> <!-- Si liste ouverte on peut sélectionner plusieurs ass sans fermer -->
      <span id="loc_selected" style="display: block;"><?php echo $loc_selected[0]->loc_nom; ?></span> <!-- Si clique, on ferme la liste, idem à bouton  -->
      <span class="_optgroup">Groupe ...</span>
      <?php 
      for ($i=0;$i<sizeof($ass_selected);$i++) {
      ?>
      <?php if ($i>0) { ?><br /><?php } ?><input type="checkbox" id="ass<?php echo $ass_selected[$i]->ass_code;?>" /> <label for="ass<?php echo $ass_selected[$i]->ass_code;?>" class="test"><?php echo sprintf("%02d",$ass_selected[$i]->ass_code).' - '.$ass_selected[$i]->ass_nom; ?>
      <?php } ?>
    </div> 
    </div>

    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
    $("[id^='text_']").mousedown(function(e) {
    		name = $(e.target).attr('id').substring(5); // Tout le reste, à partir de 5
    		// alert(name); // ok
    	});
     
    	var select_text = $('#text_'+name);
    	var select_opn = $('#select_opn');
    	var select_list = $('#list_'+name);
    	var loc_selected = $('#loc_selected');
     
    	/**
    	* Si mousedown sur select, bouton, .. : Ouvre/Ferme la liste
    	*/
    	$("#select_opn, #text_"+name+", #loc_selected").mousedown(function() {
    		alert('tests');
    	});
    Merci d'avance des conseils

  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 661
    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 661
    Billets dans le blog
    1
    Par défaut
    J'ai pas tout compris, mais j'ai l'impression que tu te mélanges un peu les crayons entre php et js

    php est interprété coté serveur et ne peut que collere des elements fixes pour js

    Montre nous plutot le html généré, ce sera plus clair
    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 éclairé
    Inscrit en
    Février 2009
    Messages
    637
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 637
    Par défaut
    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
    <div id="select_ass" class="select">
    <span id="text_ass" class="select_text">FFS</span>
    <img id="add_ass" class="select_add" src="public/images/flt_select_add.png" />
    <img id="opn_ass" class="select_opn" src="public/images/flt_select_opn.png" />
    <div id="list_ass" class="select_list">
     <span id="selected_ass" class="ass_selected">FFS</span>
     <span class="optgroup">--- par région ---</span>
       <input type="checkbox" id="ass09" /><label for="ass09" class="checkbox">09 - Ari&egrave;ge</label>
       <br /><input type="checkbox" id="ass12" /><label for="ass12" class="checkbox">12 - Aveyron</label>
       <br /><input type="checkbox" id="ass31" /><label for="ass31" class="checkbox">31 - Haute-Garonne</label>
       <br /><input type="checkbox" id="ass32" /><label for="ass32" class="checkbox">32 - Gers</label>
       <br /><input type="checkbox" id="ass46" /><label for="ass46" class="checkbox">46 - Lot</label>
       <br /><input type="checkbox" id="ass65" /><label for="ass65" class="checkbox">65 - Hautes-Pyr&eacute;n&eacute;es</label>
       <br /><input type="checkbox" id="ass81" /><label for="ass81" class="checkbox">81 - Tarn</label>
       <br /><input type="checkbox" id="ass82" /><label for="ass82" class="checkbox">82 - Tarn-et-Garonne</label>
      </div> 
    </div>
    le parmètre est passé lors du mousedown

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $("[id^='text_']").mousedown(function(e) {
    		name = $(e.target).attr('id').substring(5);
    			//alert(name); // Affiche "ass" ou ... si down
    	});
    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
    $(function() {
     
    	var select = $("[id^='select_']");
     
    	$("[id^='text_']").mousedown(function(e) {
    		name = $(e.target).attr('id').substring(5);
    			//alert(name);
    	});
     
    	var select_text = $('#text_'+name);
    	var select_opn = $('#opn_'+name);
    	var select_list = $('#list_'+name);
    	var selected_def = $('#selected_'+name);
     
    	/**
    	* Si mousedown sur select, bouton, ... : Ouvre/Ferme la liste
    	*/
    	$("#opn_"+name+", #text_"+name+", #selected_"+name+"\"").mousedown(function() {
    ....
    });
     
     
     
    });

  4. #4
    Membre éclairé
    Inscrit en
    Février 2009
    Messages
    637
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 637
    Par défaut
    Avec le code suivant ça fonctionne, mais il faut recharger la page après avoir désigné (cliqué) sur la liste


    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
    $(function() {
     
    	var select = $("[id^='select_']");
     
    	$("[id^='text_']").mousedown(function(e) {
    		name = $(e.target).attr('id').substring(5);
    			//alert(name);
    	});
     
    	var select_text = $('#text_'+name);
    	var select_opn = $('#opn_'+name);
    	var select_list = $('#list_'+name);
    	var selected_def = $('#selected_'+name);
     
    	/**
    	* Si mousedown sur select, bouton, ... : Ouvre/Ferme la liste
    	*/
    	$("#opn_"+name+", #text_"+name+", #selected_"+name).mousedown(function() {
    ....
    });

  5. #5
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $("[id^='text_']").mousedown(function(e) {
    		name = $(e.target).attr('id').substring(5); // Tout le reste, à partir de 5
    		// alert(name); // ok
    	});
    donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var wName = $("[id^='text_']").attr('id').substring(5);
    Suffit, non?

  6. #6
    Membre éclairé
    Inscrit en
    Février 2009
    Messages
    637
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 637
    Par défaut
    Merci, j'utilisais la méthode onmousedown car cela me permettait de récupérer l'Id, ce cette façon je pensais réutiliser celui-ci pour le faire circuler dans le script et ainsi utiliser le même script pour plusieurs composants, m'enfin bref, j'ai pas trouvé la solution de toute façon et je galère encore...

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

Discussions similaires

  1. Comment passer des paramètres dans une EL ?
    Par verbose dans le forum JSF
    Réponses: 1
    Dernier message: 01/09/2011, 12h35
  2. Comment passer des paramètres dans une requête XPATH
    Par SyLvErStOrM dans le forum BIRT
    Réponses: 18
    Dernier message: 29/04/2011, 12h08
  3. [ZF 1.9] Zend Paginator, comment passer des paramètre dans l'url ?
    Par mrjay42 dans le forum Autres composants
    Réponses: 6
    Dernier message: 02/12/2009, 16h49
  4. Réponses: 5
    Dernier message: 03/07/2007, 11h31
  5. Réponses: 2
    Dernier message: 11/10/2006, 14h37

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