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 :

Récupérer la valeur d'un input type alimenté à partir d'une base de données [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 104
    Points : 45
    Points
    45
    Par défaut Récupérer la valeur d'un input type alimenté à partir d'une base de données
    Voici mon code

    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
     
    <?php
    	  $query_support = "SELECT fvl.`value`, fvl.`id_feature_value`
    	  FROM `ps_feature_value_lang` fvl
    	  LEFT JOIN `ps_feature_value` fv ON fv.`id_feature_value` = fvl.`id_feature_value`
          LEFT JOIN `ps_feature_product` fp ON fp.`id_feature_value` = fvl.`id_feature_value`
          WHERE fp.`id_feature` =7";
    	  $result_support = mysql_query($query_support, $base) or die(mysql_error());
    		$i=0;
    	  while($val_support = @mysql_fetch_array($result_support)){
     
    		$id_support = utf8_encode($val_support['id_feature_value']);
    		echo'<table width="120" border="0" cellspacing="2" cellpadding="0">
    		<tr>
              <td width="26" valign="middle">
                <input type="checkbox" name="'.utf8_encode($val_support['value']).'" id="supports"/>
    			<input type="hidden" id="'.$i++.'" value="'.utf8_encode($id_support).'" name="id_support"/>
              </td>
    		  <td width="46" valign="middle"><span class="orange11maj">'.utf8_encode($val_support['value']).'</span></td>
    		  <td width="46" valign="middle"><img src="img/tableau-picto-glossaire.png" width="14" height="14" /></td>
            </tr>
          </table>';
    	  }
    	  ?>
    Un click dans la checkbox de mon choix appelle un fichier php avec une requête sql à laquelle je souhaite transmettre la valeur stockée ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="hidden" id="'.$i++.'" value="'.utf8_encode($id_support).'" name="id_support"/>
              </td>
    J'ai essayé de passer cette valeur avec une variable de session mais je ne récupère que la dernière valeur du tableau pourtant quand j'affiche les valeurs de mon input type hidden j'ai bien différentes valeurs.

    Je ne sais pas du tout comment m'y prendre. Je ne sais pas si j'ai été assez clair mais je vous merci d'avance pour votre aide et votre compréhension.

  2. #2
    Membre averti
    Avatar de magicshark
    Homme Profil pro
    Dans une SS2I donc pas que JAVA
    Inscrit en
    Octobre 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dans une SS2I donc pas que JAVA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 133
    Points : 320
    Points
    320
    Par défaut
    essaye de mettre ton name comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type........ name="monName[]" ..... />
    ensuite fait un print_r dans ta page de réception pour voir ce que tu reçoit en effet le problème c'est que tu as plusieurs input avec le même name ce qui va devenir le nom de ta variable donc du coup si tu fais comme tu vas recevoir un tableau de monName.

    maintenant si le but pour toi est de recevoir celui qui est "liée" a la checkbox coché, tu dois passer la valeur qui t’intéresse dans le "value" de ta checkbox sinon tu ne sauras pas lequel correspond a ta checkbox. Enfin un ID doit être unique or ils sont tous "support"

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 104
    Points : 45
    Points
    45
    Par défaut
    Salut magicshark,
    En effet, je souhaite récupérer la valeur liée à la checkbox cochée.
    Je passe les valeurs dans ma checkbox ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="'.utf8_encode($val_support['value']).'" id="supports" value="'.utf8_encode($id_support).'" />
    Pour récupérer la valeur de ma checkbox il faudrait que je passe en variable de session son id soit supports.

    L'id est supports pour toutes les checkbox car un click dans une checkbox déclenchera une requête sql avec comme attribut la valeur de cette checkbox qui elle est différente pour chaque checkbox.

    Quelqu'un aurait une idée pour passer cette valeur en session.

    Merci d'avance

  4. #4
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Vatican

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 144
    Points : 238
    Points
    238
    Par défaut
    si tu est entrain d'utiliser AJAX, je suppose que tu utilise l'évènement onchange ou onclick, là tu n'as pas besoin de l'id ni du nom de ta checkbox juste sa valeur.

    Par contre tu poste cette valeur, là Tu devras avoir un id différents pour chaque checkbox et y ajoutant un séparateur plus $i++ à sa fin, et là quand tu récupère ta variable tu fais un explode pour connaitre la checkbox en question.

    Parles nous davantage sur la procédure qui se déclenche en cliquant sur une checkbox, et plus généralement sur ce que tu compte faire. Comme ça il est possible de mieux voir et d'apporter une solution plus appropriée.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 104
    Points : 45
    Points
    45
    Par défaut
    Tu as raison mandrake_of_mandregas je vais vous donner plus d'infos sur la procédure.

    Voici mon js pour l'utilisation d'ajax
    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
    $(document).ready( function() {
      // détection de la saisie dans le champ de recherche
      $("#supports").live("click", function(){
        $field = $(this);
        $('#support').html(''); // on vide les resultats
        $('#largeur').html(''); // on vide les resultats
    	$('#hauteur').html(''); // on vide les resultats
    	$('#forme').html(''); // on vide les resultats
    	$('#qualite').html(''); // on vide les resultats
        $('#ajax-loader').remove(); // on retire le loader
        $('#checkbox').removeAttr('checked');
     
          // on envoie la valeur recherché en GET au fichier de traitement
          $.ajax({
      	type : 'GET', // envoi des données en GET ou POST
    	url : 'ajax-search.php' , // url du fichier de traitement
    	data : 'q='+$(this).val() , // données à envoyer en  GET ou POST
     
    	success : function(data){ // traitements JS à faire APRES le retour d'ajax-search.php
    		$('#ajax-loader').remove(); // on enleve le loader
     
    		$('#support').html("<span class='orange11maj'>Velin</span><img src='img/tableau-picto-glossaire.png' width='14' height='14' />"); // affichage des résultats dans le bloc
    		$('#largeur').html(data)
    	}
          });
     
     
      });
    });
    Quand je clique dans une de mes checkbox, j'appelle un fichier php qui effectue une requête SQL et je souhaite passer la valeur de ma checkbox en paramètre de cette requête.

    Voici mon php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $result =   mysql_query( 'SELECT fvl.`value` 
    						FROM  `ps_feature_value_lang` fvl
    						LEFT JOIN  `ps_feature_value` fv ON fv.`id_feature_value` = fvl.`id_feature_value` 
    						LEFT JOIN  `ps_feature_product` fp ON fp.`id_feature_value` = fvl.`id_feature_value` 
    						WHERE fp.`id_product` 
    						IN (
    						SELECT  `id_product` 
    						FROM  `ps_feature_product` 
    						WHERE  `id_feature_value` ="VALEUR DE MA CHECKBOX"
    						)
    						AND fp.`id_feature` =2' );
    Mon problème c'est que je ne sais pas comment récupérer la valeur de la checkbox coché dans le fichier php.

    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
     $query_support = "SELECT fvl.`value`, fvl.`id_feature_value`
    	  FROM `ps_feature_value_lang` fvl
    	  LEFT JOIN `ps_feature_value` fv ON fv.`id_feature_value` = fvl.`id_feature_value`
          LEFT JOIN `ps_feature_product` fp ON fp.`id_feature_value` = fvl.`id_feature_value`
          WHERE fp.`id_feature` =7";
    	  $result_support = mysql_query($query_support, $base) or die(mysql_error());
    		$i=0;
    	  while($val_support = @mysql_fetch_array($result_support)){
    	   
    		
    		echo'<table width="120" border="0" cellspacing="2" cellpadding="0">
    		<tr>
              <td width="26" valign="middle">
                <input type="checkbox" name="'.utf8_encode($val_support['value']).'" id="supports" value="'.$val_support['id_feature_value'].'"/>
    			<input type="hidden" id="'.$i++.'" value="'.utf8_encode($id_support).'" name="id_support"/>
              </td>
    		  <td width="46" valign="middle"><span class="orange11maj">'.utf8_encode($val_support['value']).'</span></td>
    		  <td width="46" valign="middle"><img src="img/tableau-picto-glossaire.png" width="14" height="14" /></td>
            </tr>
          </table>';
    Merci d'avance à tous pour votre aide

  6. #6
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Vatican

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 144
    Points : 238
    Points
    238
    Par défaut
    OK,

    dans ce cas tu devrais apporter une modification au niveau de ton code JS en utilisant la même fonction mais avec un attribut.

    et après pour cchaque case à cocher tu ajouter dans ta balise un évènement onclick ou on change= la_fonction(this.value).

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 104
    Points : 45
    Points
    45
    Par défaut
    Dans ce cas je récupère la valeur dans le js mais pas dans le php, Non?
    Je souhaite récupérer cette valeur pour ma requête sql dans le php

  8. #8
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Vatican

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 144
    Points : 238
    Points
    238
    Par défaut
    dans ton php tu modifie de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="checkbox" name="'.utf8_encode($val_support['value']).'" id="supports" value="'.$val_support['id_feature_value'].'" onclick="ta_fonction(this.value)"/>
    Le JS :

    Code javascript : 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
     
     function ma_fonction(str){
     
     
    	document.getElementById("support").innerHTML='';
     
    	document.getElementById("largeur").innerHTML='';
     
    	document.getElementById("hauteur").innerHTML='';
     
    	document.getElementById("forme").innerHTML='';
     
    	document.getElementById("qualite").innerHTML='';
     
     
    	document.getElementById("ajax-loader").remove();
     
     	document.getElementById("checkbox").removeAttr('checked');
          // on envoie la valeur recherché en GET au fichier de traitement
     
          $.ajax({
      	type : 'GET', // envoi des données en GET ou POST
    	url : 'ajax-search.php' , // url du fichier de traitement
    	data : 'q='+str , // données à envoyer en  GET ou POST
     
    	success : function(data){ // traitements JS à faire APRES le retour d'ajax-search.php
    		$('#ajax-loader').remove(); // on enleve le loader
     
    		$('#support').html("<span class='orange11maj'>Velin</span><img src='img/tableau-picto-glossaire.png' width='14' height='14' />"); // affichage des résultats dans le bloc
    		$('#largeur').html(data)
    	}
          });
     
     
      }

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 104
    Points : 45
    Points
    45
    Par défaut
    mandrake_of_mandregas j'ai encore fait plus simple

    mon php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="supports" id="supports" value="'.$val_support['id_feature_value'].'"/>
    mon js
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     $.ajax({
      type : 'GET', // envoi des données en GET ou POST
      url : 'ajax-search-support.php' , // url du fichier de traitement
      data : 'supports='+$(this).val() , // données à envoyer en  GET ou POST
    	
      success : function(data){ // traitements JS à faire APRES le retour d'ajax-search.php
    	$('#ajax-loader').remove(); // on enleve le loader
    	$('#support').html(data); // affichage des résultats dans le bloc
      }
    });

    Je récupère bien la valeur de la checkbox sur laquelle j'ai cliqué dans mon php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $result =   mysql_query( 'SELECT fvl.`value` 
    	FROM  `ps_feature_value_lang` fvl
    	LEFT JOIN  `ps_feature_value` fv ON fv.`id_feature_value` = fvl.`id_feature_value` 
    	LEFT JOIN  `ps_feature_product` fp ON fp.`id_feature_value` = fvl.`id_feature_value` 
    	WHERE fp.`id_product` 
    	IN (
    	SELECT  `id_product` 
    	FROM  `ps_feature_product` 
    	WHERE  `id_feature_value` ="'.$_GET['supports'].'"
    	)
    	AND fp.`id_feature` =7' );
    un problème en amenant un autre je souhaite récupérer de la même façon une valeur que je passe un href

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo' <a id="largeurs" name="largeurs" href="#?largeurId='.$val_largeur['id_feature_value'].'" class="liste11">'.$val_largeur['value'].'</a><br/>';
    Dans mon js quand je fais
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    data : 'largeurs='+$(this).val() ,
    ça ne fonctionne pas. j'ai même essayé
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    data : 'largeurID='+$(this).val() ,

    J'ai également essayé ça
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    data : 'largeurs='+$(this).attr('href')

    Sans succès.

    Merci d'avance

  10. #10
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Vatican

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 144
    Points : 238
    Points
    238
    Par défaut
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    data : 'largeurs='+$(this).attr('href')

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    data : 'largeurs='+$(this).href

    Devraient tous les deux marcher mais ils t'envoient #?largeurId=XXX

    et non pas XXX

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 104
    Points : 45
    Points
    45
    Par défaut
    Bonsoir j'ai fait autrement, j'ai récupéré ces infos via le title de mon Href comme ça

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    <a id="'.$k++.'" href="#" class="formeId" title="'.$val_forme['id_feature_value'].'">'.utf8_encode($val_forme['value']).'</a>
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $(document).ready( function() {
      $(".formeId").live("click", function(){
     
    	$.ajax({
      	type : 'GET', // envoi des données en GET ou POST
    	url : 'ajax-search-formes-largeur.php' , // url du fichier de traitement
    	//data : 'formes='+$(this).attr('title'), // données à envoyer en  GET ou POST
    	success : function(data){ // traitements JS à faire APRES le retour d'ajax-search.php
    	}
          });
    });
    });
    Merci à tous

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 31/05/2010, 21h16
  2. récupérer la valeur d'un input (type=text) sans input de type submit
    Par Marc22 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 12/04/2010, 21h14
  3. comment récupérer la valeur d'un input type text en disabled
    Par thor76160 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/03/2010, 14h53
  4. [Selenium] Récupérer la valeur d'un input type hidden
    Par gecko753 dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 31/12/2009, 12h37
  5. Réponses: 16
    Dernier message: 05/07/2007, 11h14

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