Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fonction explode ne marche pas

Pour récupérer une donnée dans une liste autosélection

Sujet résolu
    7 janvier 2009 à 17:36:16

    Salut à tous, dsl jne sais pas ou je doi poster ce probleme!!

    j'ai un pti souci pour récupérer une donnée, pour vous expliquer, j'ai crée un champs d'autosélection qui donc me permet d'afficher les données de ma bdd via ce que je rentre dans le input,si par exemple je mets "j", une liste ce met desous et affiche tout les données commencant par la lettre "j".
    Voila un exemple de ce que je récupère dans cette liste (histoire que cela soit concré):
    Jean moulin---121
    Jeanne dupuit---87
    Joseph patrick---302
    


    Pour cette liste j'utilise de l'ajax dont voici une partie du code qui me donne cette liste :
    $response = array();
    while ( $result = mysql_fetch_array($query,MYSQL_ASSOC))
    {
    $response[] = array ('Nom_Responsable' => $result['Nom_Responsable'],'Prenom_Responsable' => $result['Prenom_Responsable'],'ID_Responsable' => $result['ID_Responsable']);
    $plop = $response[1];
    }
    $return = '<ul>';
    for($i=0;$i<count($response);$i++)
    {
    $return .= '<li id="'.$response[$i]['Nom_Responsable'].'" class="ajaxComplete">
    <div class="reponse">'.$response[$i]['Nom_Responsable']." ".$response[$i]['Prenom_Responsable']."---".$response[$i]['ID_Responsable'].'</div>
    </li>';
    }
    $return .= '</ul>';
    												
    echo utf8_encode($return);
    


    Donc ceci me renvoi la liste, pour l'instant aucun probleme, mais ce que je veux faire c'est récupérer l'id pour ma bdd, j'utilise donc la fonction explode():
    <input type="text" name="NomResponsable_Benef" id="ajax" value="<?php $Responsable = $_POST['NomResponsable_Benef']; echo $Responsable;?>" tabindex="9" onChange="setTimeout('submitForm()',600)">
    <?php $Resp = explode('---',$Responsable); $numero = $Resp[1]; ?>
    <input type="text" name="NomResponsable_Beneficiaire" id="ee" value="<?php echo $numero; ?>" >	
     <div id="Responsable1_update" class="ajax_class"></div>                       
     <script type="text/javascript">
    new AutoCompleteur('NomResponsable_Benef', 'Responsable1_update', 'Requetes_AJAX/requeteResponsable.php', {
      Ajax: {
    paramName:'responsable'
    }
    });
    


    Le souci c'est que jne récupère rien dans le input, je devrai récupéré l'id mais rien ne s'affiche.

    Vous avez une idée? :-°
    • Partager sur Facebook
    • Partager sur Twitter
      7 janvier 2009 à 17:41:50

      1- J'ai rien compris.
      2- C'est plutôt un problème PHP
      3- Je ne vois pas du tout d'ajax a par l'id qui se veux "ajax"
      4- Je comprend pas trop ton truc là,
      <input [...] name="NomResponsable_Benef" value="<?php $Responsable = $_POST['NomResponsable_Benef']; echo $Responsable;?>" [...] >
      

      D'où tu récupères ta valeur en post? Enfin, d'où elle est émise? L'est-elle?


      Edit: Ok je pense avoir compris ton code.. tant bien que mal..
      Donc si j'ai bien compris,
      new AutoCompleteur('NomResponsable_Benef', 'Responsable1_update', 'Requetes_AJAX/requeteResponsable.php', {
        Ajax: {
      paramName:'responsable'
      }
      });
      


      Récupère le fameux truc---bidul et l'écrit dans l'input? (Soit dit en passant je vois rien permettant l'écriture)
      Et tu voudrais pas le PHP qui est dans l'input, convertir cette string?

      Si c'est le cas => C'est que t'as absolument rien compris au Javascript et au PHP.
      Le php s'execute coté serveur, avant que la page s'affiche.
      Le javascript, une fois la page chargée.
      Une fois la page chargé, il n'y a plus de PHP possible sur cette page
      • Partager sur Facebook
      • Partager sur Twitter
        7 janvier 2009 à 17:54:18

        Heuu enfait je dirai plutot JS, quoiqu'il en soit :
        <input type="text" name="NomResponsable_Benef" id="ajax" value="<?php $Responsable = $_POST['NomResponsable_Benef']; echo $Responsable;?>" tabindex="9" onChange="setTimeout('submitForm()',600)">
        
        <?php $Resp = explode('---',$Responsable); $numero = $Resp[1]; ?>
        <input type="text" name="NomResponsable_Beneficiaire" id="ee" value="<?php echo $numero; ?>" >
        

        $Responsable récupère la liste crée par la boucle qui récupere nom prenom---ID
        Puis j'utilise :
        $Resp = explode('---',$Responsable); $numero = $Resp[1];

        Pour récupérer ce qu'il y a après "---" c'est à dire l'id.
        Je regarde si je l'a récupere bien dans :
        <input type="text" name="NomResponsable_Beneficiaire" id="ee" value="<?php echo $numero; ?>" >        


        Mais rien ne s'ffiche dedans, je devrai avoir l'id!!

        Vous savez pas d'ou cela vient?

        Merci

        • Partager sur Facebook
        • Partager sur Twitter
          7 janvier 2009 à 17:56:35

          Citation : max33370

          Heuu enfait je dirai plutot JS, quoiqu'il en soit :

          <input type="text" name="NomResponsable_Benef" id="ajax" value="<?php $Responsable = $_POST['NomResponsable_Benef']; echo $Responsable;?>" tabindex="9" onChange="setTimeout('submitForm()',600)">
          
          <?php $Resp = explode('---',$Responsable); $numero = $Resp[1]; ?>
          <input type="text" name="NomResponsable_Beneficiaire" id="ee" value="<?php echo $numero; ?>" >
          


          $Responsable récupère la liste crée par la boucle qui récupere nom prenom---ID



          C'est cette partie le problème.
          Mais le problème, c'est que je ne comprend pas un mot de ce que tu veux dire o_O

          Pas un seul moment tu envoie des donnés en POST lors du chargement de la première page
          Quand tu récupères de la seconde page par ajax les trucs, le PHP de la première est deja exécuté donc il n'y a absolument aucune interaction possible
          • Partager sur Facebook
          • Partager sur Twitter
            7 janvier 2009 à 18:11:44

            Pourtant si, je te mets un peu plus de code, pour que tu comprennes, là c'est pour mes responsables :
            <td width="35%">RESPONSABLE :</td>
            <td width="60%">
            <?php 
            
            else
            {
            ?>
             <input type="text" name="NomResponsable_Benef" id="ajax" value="<?php $Responsable = $data['NomResponsable_Benef']; echo $Responsable;?>" tabindex="10">
             <div id="Responsable1_update" class="ajax_class"></div>     
                              
               <script type="text/javascript">
            new AutoCompleteur('NomResponsable_Benef', 'Responsable1_update', 'Requetes_AJAX/requeteResponsable.php', 
            {
            Ajax: {
            paramName:'responsable'
            }
            });
            </script>
             <?php } ?>
            </td>
            </tr>
            


            La variable passé est :'responsable'
            Par le biai du <input type="text" name="NomResponsable_Benef"...
            Ca envoi les données sur la page requeteResponsable.php

            Qui renvoie ma liste.

            Voilou :D
            • Partager sur Facebook
            • Partager sur Twitter
              7 janvier 2009 à 18:18:39

              Pourquoi le $_POST s'est miraculeusement changé en $data?

              Ps: $data qui ne sort d'on ne sait où également

              Moi j'ai l'impression que t'essaie de faire:

              1. Tu charges ta pages n°1
              2. Par ajax tu récupères les noms sur la page n°2
              3. Tu les affiches dans les inputs de la pages n°1 grâce au php dans les inputs

              c'est ça?

              Bon ce code me donne mal au crane franchement.
              Si quelqu'un veux pendre le relais..
              • Partager sur Facebook
              • Partager sur Twitter
                7 janvier 2009 à 18:28:35

                Oui dsl c'est vrai que c'est la me*;!
                J vais me débrouiller autrement, d'ailleur ça commence à me souler aussi!!!
                :colere2:

                J'ai volontairement pas mis tous le code, $data vien des valeurs d'une requete faite avant.

                Merci quand même
                • Partager sur Facebook
                • Partager sur Twitter

                Fonction explode ne marche pas

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown