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 depuis une autre page.php


Sujet :

jQuery

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 24
    Par défaut Récupérer une variable php depuis une autre page.php
    Bonjour

    Mon petit exercice consiste à faire une recherche sur une bd pour récuperer la liste des utilisateurs enregistrés puis d 'afficher les inforamtions reliés à cet l 'utilisateur recherché

    Ma recherche Fonctionne nikel, je souhetrais qu'au click sur le resultat, toute les inforamtions soit remplis dans des inputs.


    Ma page d'index.php contient l'input de la recherche et les inputs du formulaire:


    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
     
    ..........
    <script type="text/javascript" src="jquery-1.8.0.min.js"></script>
    <script type="text/javascript">
     
    $(function(){
     
    $(".search").keyup(function() 
    { 
    var searchid = $(this).val();
    var dataString = 'search='+ searchid;
    if(searchid!='')
    {
    	$.ajax({
    	type: "post",
    	url: "search.php",
    	data: dataString,
    	cache: false,
    	success: function(html)
    	{
    	$("#result").html(html).show();
    	}
    	});
    }return false;    
    });
     
    jQuery("#result").live("click",function(e){ 
    	var $clicked = $(e.target);
    	var $name = $clicked.find('.name').html();
    	var decoded = $("<div/>").html($name).text();
    	$('#searchid').val(decoded);
    });
    jQuery(document).live("click", function(e) { 
    	var $clicked = $(e.target);
     
    	if (! $clicked.hasClass("search")){ 
    	  	jQuery("#result").fadeOut(); 
    	}
    });
    $('#searchid').click(function(){
     
    	jQuery("#result").fadeIn();
    });
    });
     
    </script>
    ..........
     
     
    	<form action="" method="POST" class="form-horizontal" >
     
    									<div class="control-group">
    										<label class="control-label">Nom et prenom:</label>
    										<div class="controls">
    										  <input type="text" name="nom_ens" id="nom_ens" class="span3"  /> 
    										  <input type="text"name="pre_ens" id="pre_ens" class="span3" />
    									</div>
    	</form>
    	.......
    Mon fichier search.php qui traite la requete de la recherche:
    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
     
    <?php
    $connection = mysql_connect('localhost','root','') or die(mysql_error());
    $database = mysql_select_db('ges_prof') or die(mysql_error());
    if($_POST)
    {
    mysql_query("SET NAMES utf8");
    mysql_query("set characer set utf8");
    $q=$_POST['search'];
    $sql_res=mysql_query("select id,nom_ens,pre_ens where nom_ens like '%$q%' or pre_ens like '%$q%' order by id LIMIT 5");
    while($row=mysql_fetch_array($sql_res))
    {
    $b_username='<strong>'.$q.'</strong>';
    $b_pre=$q;
    $final_nom_ens = str_ireplace($q, $b_username, $nom_ens);
    $final_pre_ens = str_ireplace($q, $b_pre, $pre_ens);
    ?>
     
    <div class="show" align="right" >
    <span class="name"><?php echo $final_nom_ens; ?></span>&nbsp;<br/><?php echo $final_pre_ens; ?><br/>
    </div>
    <?php
    }
    }
     
    ?>
    Je souhetrais savoir comment recuperer les variables final_nom_ens et final_pre_ens dans les inputs du formulaire

    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 415
    Par défaut
    Salut,

    Pour attribuer des valeurs à des input il suffit de renseigner l'attribut value.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="pre_ens" id="pre_ens" value="<?php echo isset($final_pre_ens) ? $final_pre_ens : ''?>" class="span3" />

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 24
    Par défaut
    Salut et merci ABCIWEB

    J'ai testé cette solution mais rien, j'ai pensé à implémenter un script js qui se déclenche à l’événement Onclick sur la <div> du search.php qui affiche du resultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <div class="show" align="right" onclick="remplir()" >
    <span class="name"><?php echo $final_nom_ens; ?></span>&nbsp;<br/><?php echo $final_pre_ens; ?><br/>
     
    </div>
    <script type="text/javascript">
    function remplir()
    {
    La je ne  sais pas comment m'y faire
     
    }
    </script>

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 415
    Par défaut
    Le pb est que je ne sais pas bien précisément ce que tu veux faire.

    Si tes informations sont récupérées via une requête ajax, il faut renseigner les input via javascript/jquery. En admettant que ton input ait un id="mon_input" et que tu veuille lui affecter la variable javascript "value", ta fonction javascript devrait ressembler à ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function remplir(value)
    {
    $("#mon_input").val(value);
    }
    Plus de doc ici. Evidemment il faudrait passer l'id comme variable en paramètre à la fonction si tu veux une fonction plus générique.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 24
    Par défaut
    Ce que je veux faire c'est remplir les inputs qui exite dans le formulaire situé dans index.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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    $(function(){
     
    $(".search").keyup(function() { 
    var searchid = $(this).val();
    var dataString = 'search='+ searchid;
    if(searchid!=''){
    	$.ajax({
    	type: "post",
    	url: "search.php",
    	data: dataString,
    	cache: false,
    	success: function(html){
    	$("#result").html(html).show();
    	}
    	});
    }return false;    
    });
     
    jQuery("#result").live("click",function(e){ 
    	var $clicked = $(e.target);
    	var $name = $clicked.find('.name').html();
    	var decoded = $("<div/>").html($name).text();
    	$('#searchid').val(decoded);
    });
    jQuery(document).live("click", function(e) { 
    	var $clicked = $(e.target);
     
    	if (! $clicked.hasClass("search")){ 
    	  	jQuery("#result").fadeOut(); 
    	}
    });
    $('#searchid').click(function(){
     
    	jQuery("#result").fadeIn();
    });
    });
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <div class="content">
       	<label class="control-label" style="margin-left: 940px; width: 125px;">recherche</label>
    	<input style="margin-left: 510px;"type="text" class="search" id="searchid" placeholder="Saisir la recherche" />
    	<div id="result" style="left: 690px;" >
    </div>
    <form action="" method="POST" class="form-horizontal" >
    	<div class="control-group">
    		<label class="control-label">Nom et prenom:</label>
    		<div class="controls">
    			<input type="text" name="nom_ens" id="nom_ens" class="span3"  /> 
    			<input type="text"name="pre_ens" id="pre_ens" class="span3" />
    		</div>
    </form>


    avec les variables recupérés avec cette requete qui se trouve dans le fichier search.php quand je click sur la div result:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $sql_res=mysql_query("select id,nom_ens,pre_ens where nom_ens like '%$q%' or pre_ens like '%$q%' order by id LIMIT 5");
    while($row=mysql_fetch_array($sql_res)){
    $nom_ens=$row['nom_ens'];
    $pre_ens=$row['pre_ens'];
    $b_username='<strong>'.$q.'</strong>';
    $b_pre='<strong>'.$q.'<strong>';
    $final_nom_ens = str_ireplace($q, $b_username, $nom_ens);
    $final_pre_ens = str_ireplace($q, $b_pre, $pre_ens);
    ?>

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 24
    Par défaut
    Citation Envoyé par ABCIWEB Voir le message
    Le pb est que je ne sais pas bien précisément ce que tu veux faire.

    Si tes informations sont récupérées via une requête ajax, il faut renseigner les input via javascript/jquery. En admettant que ton input ait un id="mon_input" et que tu veuille lui affecter la variable javascript "value", ta fonction javascript devrait ressembler à ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function remplir(value)
    {
    $("#mon_input").val(value);
    }
    Plus de doc ici. Evidemment il faudrait passer l'id comme variable en paramètre à la fonction si tu veux une fonction plus générique.
    Rebonsoir;

    J'ai fais appel à la fonction.val de jquery:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <div class="show" align="right" onclick="remplir(nom_ens,pre_ens)" >
    <span class="name"><?php echo $final_nom_ens; ?></span>&nbsp;<br/><?php echo $final_pre_ens; ?><br/>
    <script type="text/javascript">
     
    function remplir(nom_ens,pre_ens)
    {
     
    $("#pre_ens").val(pre_ens);
    $("#nom_ens").val(nom_ens);
    }
    </script>
    </div>
    Sa m'affiche [object HTMLInputElement] dans les inputs du formulaire.

    Merci

  7. #7
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 415
    Par défaut
    Fais un contrôle de la valeur de tes variables, avec alert (ou console.log si tu sais te servir de la console javascript du navigateur) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function remplir(nom_ens,pre_ens)
    {
    alert(nom_ens);
    $("#pre_ens").val(pre_ens);
    $("#nom_ens").val(nom_ens);
    }

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 24
    Par défaut
    j'ai remplacé mon script par:

    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 class="show" align="right" onclick="remplir()" >
    <span class="name"><?php echo $final_nom_ens; ?></span>&nbsp;<br/><?php echo $final_pre_ens; ?><br/>
     
    </div>
    <?php
    }
    }
    ?>
    <script type="text/javascript">
    function remplir()
    {
    var nom_ens='<?PHP echo $nom_ens;?>';
    var pre_ens='<?PHP echo $pre_ens;?>';
    $("#pre_ens").val(pre_ens);
    $("#nom_ens").val(nom_ens);
    </script>
    et j'ai les valeurs correctes dans mes inputs de l'utilisateur recherché si un seul résultat est affiché avec ma recherche instantané.

    Par contre

    Léger souci c'est que si ma recherche ajax m'affiche plus qu'un seul résultat et en cliquant sur quelconque utilisateurs , mes inputs sont remplis par le dernier enregistrement envoyé à ma bd.

    vous avez une idée la-dessus?

    Merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/07/2014, 14h54
  2. Réponses: 0
    Dernier message: 13/10/2011, 14h24
  3. Modifier une page PHP depuis une autre page
    Par Pineurne dans le forum Langage
    Réponses: 4
    Dernier message: 10/01/2010, 10h36
  4. Réponses: 9
    Dernier message: 23/06/2009, 10h54
  5. Réponses: 18
    Dernier message: 22/02/2006, 14h53

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