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

Langage PHP Discussion :

Récupérer les cases cochés pour affichage infos dans autre page


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de kifouillou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 270
    Points : 84
    Points
    84
    Par défaut Récupérer les cases cochés pour affichage infos dans autre page
    Bonjour à tous,

    j'ai une liste d'éléments avec des checkbox à coté que j'affiche gràce à une requète.Classique quoi.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while ( $r = dbiFetch($q))
    	{ 
    	$b = "<a href='$PHP_SELF?Action=tch&Etape=reporting&prj_id=$r[prj_id]'>"."<b>".$r[label1] ." : ".$r[label2]."</b>"."<br />"."</a>";
    	$html .= "<input type=checkbox name='coche[]' value=<a href='$PHP_SELF?Action=tch&Etape=reporting&prj_id=$r[prj_id]'><b>$b</b><br /></a>";
    	}
    Ce que je voudrais c'est que lorsque je clique sur un bouton, il m'amène dans une autre page ou il m'affiche les informations relatives à toutes les checkbox cochées.

    Comment pourrais-je m'y prendre? J'ai essayé de mettre mes id dans un tableau comme vous le voyez un peu plus haut mais après je suis bloqué totalement.J'ai essayé cela mais bon pas très concluant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    requète
    foreach ($_POST['coche'] as $valeur){
    //affichage des infos
    }
    Une petite aide s'il vous plaît?

    Merci d'avance.

  2. #2
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    ta 'value' n'est pas correcte... il va y avoir des problèmes à cause de l'utilisation intempestive des quotes...


    Plusieurs solutions s'offrent à toi.

    1 : A partir de ton code
    value=<a href='$PHP_SELF?Action=tch&Etape=reporting&prj_id=$r[prj_id]'

    Passons outre le fait qu'il y ai une erreur de syntaxe, on peut remarquer que l'URL est statique sauf $r["prj_id"]

    donc pourquoi ne pas écrire :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $html .= "<input type=checkbox name='coche[]' value="'.$r[prj_id].'"><b>$b</b><br /></a>";
     
    // LECTURE
    foreach( $_POST["coche"] AS $val ) {
       echo $val."<br />"; // seule $val est importante
    }


    2 : En mettant un nom de clé
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $html .= "<input type=checkbox name="'.coche[$r['prj_id']].'" value="checked"><b>$b</b><br /></a>";
     
    // LECTURE
    foreach( $_POST["coche"] AS $key => $val ) {
       echo $key."<br />"; // Ici c'est la clé qui porte le nom. Utile si on veut un nom ET une valeur variables !
    }


    PS : je comprends pas trop ta balise <a></a> ce qu'elle vient faire là vu que tu ne peux pas faire de lien avec un formulaire (dedans OK, mais pas tout un formulaire ^^)

  3. #3
    Membre habitué Avatar de aliwassem
    Inscrit en
    Janvier 2004
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 293
    Points : 157
    Points
    157
    Par défaut


    pour moi si je comprend bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <Form method=post>
    <input name=showpage type=checkbox value=1>
    <input type=submit value=save>
    </form>
    pour recuperer le resultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      if (isset($_POST['showpage'])=="1") {
    //............................ le code que vous voulez
    }

  4. #4
    Membre régulier Avatar de kifouillou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 270
    Points : 84
    Points
    84
    Par défaut
    Bonjour,

    bon tout fonctionne correctement. J'ai bien mon affichage que je veux.
    Mais je voudrais optimiser ceci.
    Pour rappel :

    Sur une page j'ai un formulaire avec des cases à cochées.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $t1[] ="<input type=checkbox name='coche[]' value='$r2[prj_id]' >"

    et sur une autre je récupère toutes les valeurs des case cochées. Comme les valeurs sont des id de projets, pour chaque case sélectionnée j'aimerais donc afficher les infos relatives à chaques projets.

    Pour celà j'ai fais :
    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
     
    foreach($_POST['coche'] as $key =>$val)    
    {       
       $prj_id = $val;
     
     
        $sql  = " select k2people.kid as kid,k2prjproject.*,date_format(prj_debut,'%d/%m/%Y') as prj_debut,date_format(prj_fin,'%d/%m/%Y') as prj_fin,k2prjtypeproject.*,k2people.rs as cli_rs, k2people.nom as cli_nom, k2people.prenom as cli_prenom, k2people.email as cli_email, k2people.tel as cli_tel, k2people.fax as cli_fax";
    	$sql .= " from (k2prjproject left join k2people on prj_kid = k2people.kid) left join k2prjtypeproject on prj_typ_id = typ_id";
    	$sql .= " where 1=1";	
    	$sql .= " and prj_id = $prj_id"; 
    	$q = mysql_query($sql);
            $R = mysql_Fetch_array($q);
     
    <table cellpadding=0 cellspacing=0 width=100%>
     <tr>
        <td valign=top class=BG5 widht=10%>
          <u><b>Projet</b></u><br><br>
          <table cellpadding=0 cellspacing=0>
            <tr><td>Nom du projet : </td><td><b>$R[typ_label] : $R[prj_nom]</b></td></tr>
            <tr><td>Nom du client :</td><td><b>$cli_rs : $R[cli_prenom] $cli_nom</b></td></tr>
            <tr><td>Chef Projet :</td><td><b>$R[nom]</b></td></tr>
            <tr><td>Durée : </td><td>$barre</td></tr>
            <tr><td>email :</td><td><b><a href="mailto:$R[cli_email]">$R[cli_email]</a></b></td></*tr>
            <tr><td>Tel :</td><td><b>$R[cli_tel]</b></td></tr>
            <tr><td>Fax :</td><td><b>$R[cli_fax]</b></td></tr>
          </table>


    Cela fonctionne sauf que cela me génère le même nombre de requète que j'ai de cases cochées. Donc c'est pas bien performant. Pourrais-je m'y prendre autrement avec mon foreach ?


    Merci d'avance.

Discussions similaires

  1. [MooTools] Récupérer les cases cochées dans un QuickForm
    Par tigunn dans le forum Bibliothèques & Frameworks
    Réponses: 7
    Dernier message: 28/11/2011, 15h23
  2. Réponses: 4
    Dernier message: 20/08/2007, 01h16
  3. Réponses: 2
    Dernier message: 27/07/2007, 18h37
  4. Réponses: 7
    Dernier message: 21/05/2007, 09h56
  5. Pb case a cocher affichage info dans formulaire
    Par stan314 dans le forum Access
    Réponses: 2
    Dernier message: 29/04/2006, 15h49

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