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 :

perte de données d'un formulaire d'un page à une autre indépendamment des $_GET et $_POST [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 10
    Par défaut perte de données d'un formulaire d'un page à une autre indépendamment des $_GET et $_POST
    Bonjour à tous !

    Voilà je suis tout nouveau sur le forum bien que je viens de me rendre compte que j'y suis inscrit depuis un petit moment.

    Je suis également un novice en développement.

    Voilà je suis entrain de développer dans le cadre d'un stage un logiciel. J'utilise les langages HTML/CSS, PHP et Javascript/AJAX.

    Voilà j'ai un formulaire de recherche qui me permet d'afficher une liste de demandes en fonction d'un ou plusieurs critères choisis. Le formulaire est une page PHP (recherche_demande.php) et le tableau contenant la liste de résultats est une autre page PHP (liste_recherche.php). Les données saisies dans mon formulaire (recherche_demande.php) sont renvoyées à la page de résultats (liste_recherche.php) par le biais d'une fonction Javascript.

    Avec AJAX j'affiche le formulaire et le tableau dans la même page visuellement.

    Jusque là tout fonctionnement bien.

    J'ai voulu rajouter sur chacune des rubriques du tableau de résultats des petits flèches, haut et bas, qui permettent de trier les données de manière croissante ou décroissante.

    Voilà mon souci, lorsque je clique dessus il m'affiche mon tableau de résultats (sans le formulaire de recherche) mais vide sans les données. Je perds les données. J'ai pourtant fait un RefreshIt sur le fichier en lui même. Mais je perds les données saisi dans le formulaire et récupérées par le biais de ma fonction javascript. En quelque sorte il me fait un "effacement de toutes les données".

    Voici un exemple de rubrique avec les flèches de tri :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <th>ID
                <br/>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=asc&choix_rubrique=id_demande')\"><img src= \"core/images/s_asc.png\" alt=\"tri croissant\" /></a>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=desc&choix_rubrique=id_demande')\"><img src= \"core/images/s_desc.png\" alt=\"tri décroissant\" /></a></th>
    tri prend la valeur asc pour un tri croissant et desc pour un tri décroissant. choix_rubrique contient le nom du champ de ma table dans la base de données sur lequel le tri est effectué.

    Voilà voilou pour un début. Désolé si je ne suis pas très clair dans mes explications. N'hésitez pas à me demander plus de précisions.

    Merci d'avances pour vos réponses !

    Tartenpion

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 194
    Par défaut
    Bonjour,

    Au niveau de tes liens, on ne vois pas de passage de données en GET (autre que ton tri ou ta rubrique), si tu le fait en POST, il serait possible de voir un peu de code ?
    Si tu n'as pas de passage en POST non plus, ca expliquerai le fait que ton tableau soit vide.

    Yasen77

  3. #3
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut
    Merci d'utilisé balise code .
    essaye de mettre var_dum(ta variable) avec exit; pour voir le résultat.
    faut aussi ajouté if isset ta variable { instruction...} else.....
    aussi on voix pas ta requête !!!! essaye la sur phpadmin pour le résultat retourné.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    voici une discussion qui pourrait te mettre sur une bonne piste.
    L'idée est d'enregistrer les critères de recherche dans de variables de SESSION.
    Auquel cas il n'est plus utile de TOUT renvoyer à chaque fois, mais juste le(s) critère(s) à modifier.

    Voici comment je m'y prends :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    // 1/ INITIALISATION
    if(!isset($_SESSION['recherche'])){	$_SESSION['recherche']	= array(); } // on crée
    // VALEURS PAR DEFAUT
    if(!isset($_SESSION['recherche']['nbreParPage'])){	$_SESSION['recherche']['nbreParPage'] = 25;	} // Nombre par page
    if(!isset($_SESSION['recherche']['numPage'])){		$_SESSION['recherche']['numPage'] = 1;	} // Page 1
    // [...]
    // ---------------------
    // 2/ RECUPERATION depuis le formulaire
    if(isset($_POST['nbreParPage'])) {	$_SESSION['recherche']['nbreParPage'] 	= intval($_POST['nbreParPage']); }
    if(isset($_POST['numPage'])) {		$_SESSION['recherche']['numPage'] 	= intval($_POST['numPage']); }
    // [...]
    // ---------------------
    A toi de voir ce qui est récupéré/récupérable en POST et/ou GET.
    Voili voilou aussi.

  5. #5
    Membre habitué
    Inscrit en
    Octobre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 10
    Par défaut
    recoucou !

    Tout d'abord merci pour vos réponses !

    Pour les balises codes, désolé, je viens de trouver. Pas de souci je les utiliserai à l'avenir.

    Désolé je me rends compte que je ne vous ai pas donné beaucoup d'éléments. Je vais vous en donner plus mais j'espère que ce ne sera pas indigeste.

    dans mon formulaire (recherche_demande.php) le formulaire où j'entre les différentes données, j'ai plusieurs champs text de saisi ou des listes déroulantes.

    Voici un exemple de champs de saisie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <tr>
          <td><strong>id de la demande : </strong>&nbsp;&nbsp;&nbsp;</td>
          <td><input type=\"text\" id=\"id\" name=\"id\" size=\"10\"></td>
          </tr>";
    et un exemple de liste déroulante. Les données je les récupère de ma base de données :

    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
    echo "<tr>
         <td><strong>état de la demande : </strong>&nbsp;&nbsp;&nbsp;</td>
         <td><select name=\"etat\" id=\"etat\" onchange='lien_list_deroul()'>
         <option value='0'>-------</option>";
     
    $tableau_id = liste_etatDemande();
     
    //Variable qui ajoutera l'attribut selected de la liste déroulante
    $selected = '';
     
    //Parcours du tableau
     
        foreach ($tableau_id as $value)
        {
            $inf = detail_etatDemande($value);
     
            // Affichage de la ligne
     
             echo '<option value="'.$value.'">'.$inf['eta_valeur'].'</option>';
     
            //Remise à zéro de $selected
            $selected='';
        }
    echo "</select></td>";
    echo "</tr>";
    Ensuite avec le bouton Ok du formulaire, je fais appel à une fonction javascript qui me récupère les différentes données saisies.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td>".$f1->simpleButton('Ok', 'recherche_demande()', 'buttons2')."</td>
    Voici la fonction javascript :

    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
    60
    61
    62
    63
    function recherche_demande()
    {
        getXhr(); // Appel de la fonction en question définie plus haut
        xhr.onreadystatechange = function()
        { // Appeler la fonction en question dans le cas où le "readyState" change
            if(xhr.readyState == 4 && xhr.status == 200)
            { // Le "readyState" change. Les valeurs indiquées correspondent dans le cas où quelque chose est renvoyé de la page.
    }   
        }
     
        var pro_data = ""; // Création d'une variable de type tableau qui est vide.
     
        if (document.getElementById("id").value != "")
        {
            var id_demande = document.getElementById("id").value;
            var val_id = "id";
            pro_data += ""+val_id+"="+id_demande+"&";
        }
     
        if (document.getElementById("date_demande").value != "")
        {
            var date_demande = document.getElementById("date_demande").value;
            var val_date = "date";
            pro_data += ""+val_date+"="+date_demande+"&";
        }
     
        if (document.getElementById("etat").value != false)
        {
            var etat_demande = document.getElementById('etat').options[document.getElementById('etat').selectedIndex].value;
            var val_etat = "etat";
            pro_data += ""+val_etat+"="+etat_demande+"&";
        }
     
        if (document.getElementById("setat")&& document.getElementById("setat").value != "")
        {
            try
            {
            var sous_etat_demande = document.getElementById('setat').options[document.getElementById('setat').selectedIndex].value;
            var val_sous_etat = "sous_etat";
            pro_data += ""+val_sous_etat+"="+sous_etat_demande+"&";
            }
            catch(err)
            {
     
            }
        }
     
        if (document.getElementById("type_materiel").value != false)
        {
            var materiel_demande = document.getElementById('type_materiel').options[document.getElementById('type_materiel').selectedIndex].value;
            var val_materiel = "materiel";
            pro_data += ""+val_materiel+"="+materiel_demande+"";
        }
     
        if (document.getElementById("service_juridique").value != "")
        {
            var id_service = document.getElementById("service_juridique").value;
            var val_id_service = "service";
            pro_data += ""+val_id_service+"="+id_service+"&";
        }
     
         refreshIt("res","liste_recherche.php",pro_data); // On envoie ensuite vers la page php indiquée avec toutes les valeurs que contient la variable "pro_data".
    }
    Ensuite j'arrive sur la page PHP de résultat (liste_recherche.php)

    Dans ce fichier je teste les champs qui contiennent des données. Si c'est le cas je les intègre à ma requête que je construis "sur mesure" si je puis dire.

    Par exemple pour l'id :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if($_POST['id']){
        if(!$premier_critere) $select .= " AND "; else $premier_critere = false;
        $select .= "demande.id_demande=".$_POST['id'];
    }
    Une fois que j'ai testé tous les champs j'utilise ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql_recherche = "SELECT * FROM demande WHERE ".$select." AND demande.jur_id = ".$id_juridiction;
     
    $res_demande = mysql_query($sql_recherche);
    A la fin j'utilise un while pour parcourir toutes les données et les afficher :

    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
    $i = 0;
    while($affiche_requete = mysql_fetch_assoc($res_demande))
    {
        echo "<tr".bgc_tr($i).">
            <td><a href=\"#\" onClick=\"refreshIt('content', 'detail_recherche.php?id_demande=".$affiche_requete['id_demande']."')\"><b>[".$affiche_requete['id_demande']."]</b></a></td>
            <td>".$affiche_requete['raison']."</td>
            <td>".$affiche_requete['pourquoi']."</td>
            <td>".detail_etatDemande_intitule($affiche_requete['etat_demande'])."</td>
            <td>".detail_sousetatDemande_intitule($affiche_requete['setat_demande'])."</td>
            <td>".$affiche_requete['date_demande']."</td>
            <td>".$affiche_requete['date_reponse']."</td>
            <td>".$affiche_requete['date_traitement']."</td>
            <td>".$affiche_requete['service']."</td>
            </tr>";
        $i++;
    }
    Mais il est vrai que je ne récupère pas les différents $_POST dans mes liens concernant les flèches. L'erreur vient peut-être de là.

    mon code sur les flèches de tri :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <th>ID
                <br/>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=asc&choix_rubrique=id_demande')\"><img src= \"core/images/s_asc.png\" alt=\"tri croissant\" /></a>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=desc&choix_rubrique=id_demande')\"><img src= \"core/images/s_desc.png\" alt=\"tri décroissant\" /></a></th>
    Désolé, je me rends compte que le fait que je vous détaille tout peut peut-être donner l'impression que je pense que vous ne comprenez pas grand chose.

    Ce n'est pas du tout le cas. Le novice et celui qui ne comprends pas grand chose c'est bien moi.

    Mais si vous voulez, si je me permets de vous donner beaucoup d'éléments et d'expliquer des choses qui peuvent paraître évidentes c'est pour vous donner le maximum d'éléments pour essayer de trouver le problème. Je me rends compte que je ne vous avais pas donner grand chose lors de mon message précédent.

    Désolé c'est mes débuts sur ce forum. peut-être qu'à l'avenir (lorsque je maîtriserai mieux le code et comment l'expliquer) j'arriverais à faire la synthèse et à trouver un juste milieu entre le trop peu et le trop.

    En tout cas merci pour vos réponses !

    jreaux62 je vais regarder le bout de code que tu me donnes ainsi que le lien vers une autre discussion.

  6. #6
    Membre habitué
    Inscrit en
    Octobre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 10
    Par défaut
    Bonjour à tous !

    De nouveau merci pour votre aide !

    J'ai regardé mon script et je ne suis pas sûr mais je pense savoir d'où vient mon problème.

    Je vais essayer de tout expliquer et ensuite je vous pose mes questions.

    Voilà, suite à ma fonction javascript où je récupère les données de mon formulaire je pointe ensuite vers le fichier liste_recherche.php et je récupère les données grâce à des $_POST. J'ai crée des variables qui récupèrent les différents $_POST.

    Une petite précision, j'ai tenté de remplacer les $_POST par les $_GET et d'afficher le résultat et là cela ne fonctionne plus, je suis obligé de garder les $_POST.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $monpostid = $_POST['id'];
    $monpostdate = $_POST['date'];
    $monpostetat = $_POST['etat'];
    $monpostsetat = $_POST['setat'];
    $monpostmateriel = $_POST['materiel'];
    $monpostservice = $_POST['service'];
    Ensuite si les variables ne sont pas vides je constitue sur mesure ma requête.

    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
    if($monpostid)
    {
        if(!$premier_critere) $select .= " AND "; else $premier_critere = false;
        $select .= "demande.id_demande=".$_POST['id'];
    }
     
    if($monpostdate)
    {
        if(!$premier_critere) $select .= " AND "; else $premier_critere = false;
        $select .= "demande.date_demande LIKE'".$date_base."'";
    }
     
    if($monpostetat)
    {
        if(!$premier_critere) $select .= " AND "; else $premier_critere = false;
        $select .= "demande.etat_demande=".$_POST['etat'];
    }
     
    if($monpostsetat)
    {
        if(!$premier_critere) $select .= " AND "; else $premier_critere = false;
        $select .= "demande.setat_demande=".$_POST['setat'];
    }
     
    if($monpostmateriel)
    {
        if(!$premier_critere) $select .= " AND "; else $premier_critere = false;
        $select .= "demande.type_materiel='".$_POST['materiel']."'";
    }
     
    if($monpostservice)
    {
        if(!$premier_critere) $select .= " AND "; else $premier_critere = false;
        $select .= "demande.service='".utf8_decode($_POST['service'])."'";
    }
    et ma requête SQL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql_recherche = "SELECT * FROM demande WHERE ".$select." AND demande.jur_id = ".$id_juridiction;
     
    $res_demande = mysql_query($sql_recherche);
    Enfin avec le while, je parcours tous les résultats possibles et je les affiche.

    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
    $i = 0;
    while($affiche_requete = mysql_fetch_assoc($res_demande))
    {
        echo "<tr".bgc_tr($i).">
            <td><a href=\"#\" onClick=\"refreshIt('content', 'detail_recherche.php?id_demande=".$affiche_requete['id_demande']."')\"><b>[".$affiche_requete['id_demande']."]</b></a></td>
            <td>".$affiche_requete['raison']."</td>
            <td>".$affiche_requete['pourquoi']."</td>
            <td>".detail_etatDemande_intitule($affiche_requete['etat_demande'])."</td>
            <td>".detail_sousetatDemande_intitule($affiche_requete['setat_demande'])."</td>
            <td>".$affiche_requete['date_demande']."</td>
            <td>".$affiche_requete['date_reponse']."</td>
            <td>".$affiche_requete['date_traitement']."</td>
            <td>".$affiche_requete['service']."</td>
            </tr>";
        $i++;
    }
    Lorsque j'arrive sur cette page après être passé par la fonction javascript tout fonctionne bien et il m'affiche bien les données appropriées.

    Cependant lorsque je clique sur les flèches de tri, il me perd toutes les données.

    Je crois savoir pourquoi. Car lorsque je clique dessus, il me regénère bien la page en question mais toutes les données qui ne sont pas issues de la page, inévitablement, il me les perd. Notamment tous les $_POST puisque je récupérais les valeurs depuis la fonction javascript. Ils deviennent donc tous vides et du coup ma requête SQL ne peut pas s'exécuter et je ne peux plus la parcourir dans le while pour afficher les différents résultats.

    Alors j'ai essayé de stocker les différents $_POST dans des variables que j'ai mis en paramètre dans les liens de mes flèches de tri.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=asc&choix_rubrique=id_demande&monpostid=$monpostid')\"><img src= \"core/images/s_asc.png\" alt=\"tri croissant\" /></a>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=desc&choix_rubrique=id_demande&monpostid=$monpostid')\"><img src= \"core/images/s_desc.png\" alt=\"tri décroissant\" /></a></th>
    Mais le souci, si je ne me trompe pas, c'est que dans une URL on ne peut passer que des variables de type $_GET et non pas $_POST.

    Voilà ma question, est-ce qu'il est possible de convertir un $_POST en $_GET et si oui est-ce que vous pouvez m'aiguillez sur comment faire?

    Et une autre ch'ite question si jamais je fais fausse route, si ce n'est pas ça est-ce que vous voulez bien me dire selon vous d'où pourrait venir l'erreur?

    jreaux62 j'ai regardé ton script où tu testes si les variables de sessions existent. J'ai vais tester en dernier recours mais je ne suis pas sûr que cela résolve mon problème. Mais merci beaucoup pour votre aide en tout cas.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Tartenpion10 Voir le message
    Alors j'ai essayé de stocker les différents $_POST dans des variables que j'ai mis en paramètre dans les liens de mes flèches de tri.
    OK. Modifie comme ça :
    si $_POST -> on prend $_POST
    sinon si $_GET -> on prend $_GET
    sinon -> rien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $monpostid = (isset($_POST['id'])? $_POST['id'] : (isset($_GET['id'])? $_GET['id'] : '';
    $monpostdate = (isset($_POST['date'])? $_POST['date'] : (isset($_GET['date'])? $_GET['date'] : '';
    $monpostetat = (isset($_POST['etat'])? $_POST['etat'] : (isset($_GET['etat'])? $_GET['etat'] : '';
    $monpostsetat = (isset($_POST['setat'])? $_POST['setat'] : (isset($_GET['setat'])? $_GET['setat'] : '';
    $monpostmateriel = (isset($_POST['materiel'])? $_POST['materiel'] : (isset($_GET['materiel'])? $_GET['materiel'] : '';
    $monpostservice = (isset($_POST['service'])? $_POST['service'] : (isset($_GET['service'])? $_GET['service'] : '';
    jreaux62 j'ai regardé ton script où tu testes si les variables de sessions existent. [...] mais je ne suis pas sûr que cela résolve mon problème..
    Justement si. Ca évite de devoir repasser TOUS les critères en paramètres...
    D'autre part, ce n'est pas un "test d'existence" mais les critères de recherche /tri/choix (reçus en GET, ou POST, ou pas) qui sont enregistrés dans des SESSIONS.

    Un exemple de recherche ici (une 15aine de critères possibles : cliquer sur "Plus de critères")
    On peut revenir à n'importe quel moment sur cette page, grâce aux SESSIONS, la liste s'affiche avec la dernière recherche effectué plus tôt.
    Dernière modification par Invité ; 02/05/2012 à 13h52.

  8. #8
    Membre habitué
    Inscrit en
    Octobre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 10
    Par défaut
    Ca y est ! Je viens de trouver une solution. C'est probablement alambiqué et il doit y avoir plus simple, mais ça fonctionne ! ouf ! lol

    Merci jreaux62 et aux autres pour votre aide !

    Je termine mon script et je vous le poste.

  9. #9
    Membre habitué
    Inscrit en
    Octobre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 10
    Par défaut
    En fait cela ne marche qu'à moitié.

    Si je clique sur les flèches de tri associées à la rubrique que je récupère cela fonctionne, sinon il ne me récupère pas les données. De même si je clique bien sur les flèches de la rubrique, par la suite je ne dois cliquer que sur ces flèches là sinon il me perd les données. C'est un peu gênant lol.

    Je vais essayer de voir comment arranger ça.

    Voici quand même mon script :

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    <?php
    require_once 'core/iaw_init.php';
     
    $page = new BuildPage();
    $f1 = new BuildForm();
     
    $date_base = code_date($_POST['date']);
    $premier_critere = true;
    $select = "";
     
    if(isset($_GET['tri']))
    {
        $tri = $_GET['tri'];
        $champ = $_GET['choix_rubrique'];
    }
     
    else
    {
        $tri = false;
        $champ = false;
    }
     
    $tableau_id = liste_demande(uti_id(),$tri,$champ);
     
    $id_juridiction = id_jur_utilisateur(uti_id());
     
    //$monpostid = (isset($_POST['id']))? $_POST['id'] : (isset($_GET['id']))? $_GET['id'] : '';
    //$monpostdate = (isset($_POST['date']))? $_POST['date'] : (isset($_GET['date']))? $_GET['date'] : '';
    //$monpostetat = (isset($_POST['etat']))? $_POST['etat'] : (isset($_GET['etat']))? $_GET['etat'] : '';
    //$monpostsetat = (isset($_POST['setat']))? $_POST['setat'] : (isset($_GET['setat']))? $_GET['setat'] : '';
    //$monpostmateriel = (isset($_POST['materiel']))? $_POST['materiel'] : (isset($_GET['materiel']))? $_GET['materiel'] : '';
    //$monpostservice = (isset($_POST['service']))? $_POST['service'] : (isset($_GET['service']))? $_GET['service'] : '';
     
    //--------------------------------Le tableau de données-----------------------------------------------
    if(!isset($_SESSION['mesdonnees']))
    {
        $_SESSION['mesdonnees']	= array();
    } // on crée une variable de session de type tableau nommée mesdonnees
     
    //--------------------------------L'ID-----------------------------------------------
    if(isset($_POST['id']))
    {
        $_SESSION['mesdonnees']['id'] = intval($_POST['id']);
        $monpostid = $_SESSION['mesdonnees']['id'];
        echo "post ".$monpostid;
    }
     
    if(isset($_GET['monpostid']))
    {
        $monpostid = $_GET['monpostid'];
        echo "get ".$monpostid;
    }
     
    //--------------------------------La date-----------------------------------------------
    if(isset($_POST['date']))
    {
        $_SESSION['mesdonnees']['date'] = intval($_POST['date']);
        $monpostdate = $_SESSION['mesdonnees']['date'];
        echo "post ".$monpostdate;
    }
     
    if(isset($_GET['monpostdate']))
    {
        $monpostdate = $_GET['monpostdate'];
        echo "get ".$monpostdate;
    }
     
    //--------------------------------L'état-----------------------------------------------
    if(isset($_POST['etat']))
    {
        $_SESSION['mesdonnees']['etat'] = intval($_POST['etat']);
        $monpostetat = $_SESSION['mesdonnees']['etat'];
        echo "post ".$monpostetat;
    }
     
    if(isset($_GET['monpostetat']))
    {
        $monpostetat = $_GET['monpostetat'];
        echo "get ".$monpostetat;
    }
     
    //--------------------------------Le sous état-----------------------------------------------
    if(isset($_POST['setat']))
    {
        $_SESSION['mesdonnees']['setat'] = intval($_POST['setat']);
        $monpostsetat = $_SESSION['mesdonnees']['setat'];
        echo "post ".$monpostsetat;
    }
     
    if(isset($_GET['monpostsetat']))
    {
        $monpostsetat = $_GET['monpostsetat'];
        echo "get ".$monpostsetat;
    }
     
    //--------------------------------Le type de matériel-----------------------------------------------
    if(isset($_POST['materiel']))
    {
        $_SESSION['mesdonnees']['materiel'] = intval($_POST['materiel']);
        $monpostmateriel = $_SESSION['mesdonnees']['materiel'];
        echo "post ".$monpostmateriel;
    }
     
    if(isset($_GET['monpostmateriel']))
    {
        $monpostmateriel = $_GET['monpostmateriel'];
        echo "get ".$monpostmateriel;
    }
     
    //--------------------------------Le service juridique-----------------------------------------------
    if(isset($_POST['service']))
    {
        $_SESSION['mesdonnees']['service'] = intval($_POST['service']);
        $monpostservice = $_SESSION['mesdonnees']['service'];
        echo "post ".$monpostservice;
    }
     
    if(isset($_GET['monpostservice']))
    {
        $monpostservice = $_GET['monpostservice'];
        echo "get ".$monpostservice;
    }
     
    echo $page->divStart("scroll2");
     
    echo "<table class='tbDesign'>
            <thead>
                <th>ID
                <br/>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=asc&choix_rubrique=id_demande&monpostid=".$monpostid."')\"><img src= \"core/images/s_asc.png\" alt=\"tri croissant\" /></a>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=desc&choix_rubrique=id_demande&monpostid=".$monpostid."')\"><img src= \"core/images/s_desc.png\" alt=\"tri décroissant\" /></a></th>        
    
                <th>Raison
                <br/>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=asc&choix_rubrique=raison')\"><img src= \"core/images/s_asc.png\" alt=\"tri croissant\" /></a>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=desc&choix_rubrique=raison')\"><img src= \"core/images/s_desc.png\" alt=\"tri décroissant\" /></a>
                </th>
                            
                <th>Contrainte
                <br/>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=asc&choix_rubrique=pourquoi')\"><img src= \"core/images/s_asc.png\" alt=\"tri croissant\" /></a>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=desc&choix_rubrique=pourquoi')\"><img src= \"core/images/s_desc.png\" alt=\"tri décroissant\" /></a>
                </th>           
    
                <th>Etat
                <br/>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=asc&choix_rubrique=etat_demande&monpostetat=".$monpostetat."')\"><img src= \"core/images/s_asc.png\" alt=\"tri croissant\" /></a>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=desc&choix_rubrique=etat_demande&monpostetat=".$monpostetat."')\"><img src= \"core/images/s_desc.png\" alt=\"tri décroissant\" /></a>           
                </th>      
    
                <th>Sous état
                <br/>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=asc&choix_rubrique=setat_demande&monpostsetat=".$monpostsetat."')\"><img src= \"core/images/s_asc.png\" alt=\"tri croissant\" /></a>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=desc&choix_rubrique=setat_demande&monpostsetat=".$monpostsetat."')\"><img src= \"core/images/s_desc.png\" alt=\"tri décroissant\" /></a>
                </th>        
    
                <th>Date de la demande
                <br/>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=asc&choix_rubrique=date_demande&monpostdate=".$monpostdate."')\"><img src= \"core/images/s_asc.png\" alt=\"tri croissant\" /></a>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=desc&choix_rubrique=date_demande&monpostdate=".$monpostdate."')\"><img src= \"core/images/s_desc.png\" alt=\"tri décroissant\" /></a>
                </th>   
    
                <th>Date de la réponse
                <br/>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=asc&choix_rubrique=date_reponse')\"><img src= \"core/images/s_asc.png\" alt=\"tri croissant\" /></a>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=desc&choix_rubrique=date_reponse')\"><img src= \"core/images/s_desc.png\" alt=\"tri décroissant\" /></a>
                </th>
    
                <th>Date du traitement
                <br/>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=asc&choix_rubrique=date_traitement')\"><img src= \"core/images/s_asc.png\" alt=\"tri croissant\" /></a>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=desc&choix_rubrique=date_traitement')\"><img src= \"core/images/s_desc.png\" alt=\"tri décroissant\" /></a>
                </th>
    
                <th>Service juridique
                <br/>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=asc&choix_rubrique=service&monpostservice=".$monpostservice."')\"><img src= \"core/images/s_asc.png\" alt=\"tri croissant\" /></a>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=desc&choix_rubrique=service&monpostservice=".$monpostservice."')\"><img src= \"core/images/s_desc.png\" alt=\"tri décroissant\" /></a>
                </th>
            </thead><tbody>";
     
    if($monpostid)
    {
        if(!$premier_critere) $select .= " AND "; else $premier_critere = false;
        $select .= "demande.id_demande=".$monpostid;
    }
     
    if($monpostdate)
    {
        if(!$premier_critere) $select .= " AND "; else $premier_critere = false;
        $select .= "demande.date_demande LIKE'".$date_base."'";
    }
     
    if($monpostetat)
    {
        if(!$premier_critere) $select .= " AND "; else $premier_critere = false;
        $select .= "demande.etat_demande=".$monpostetat;
    }
     
    if($monpostsetat)
    {
        if(!$premier_critere) $select .= " AND "; else $premier_critere = false;
        $select .= "demande.setat_demande=".$monpostsetat;
    }
     
    if($monpostmateriel)
    {
        if(!$premier_critere) $select .= " AND "; else $premier_critere = false;
        $select .= "demande.type_materiel='".$monpostmateriel."'";
    }
     
    if($monpostservice)
    {
        if(!$premier_critere) $select .= " AND "; else $premier_critere = false;
        $select .= "demande.service='".utf8_decode($monpostservice)."'";
    }
     
    $sql_recherche = "SELECT * FROM demande WHERE ".$select." AND demande.jur_id = ".$id_juridiction;
     
    $res_demande = mysql_query($sql_recherche);
     
    $i = 0;
     
    while($affiche_requete = mysql_fetch_assoc($res_demande))
    {
        echo "<tr".bgc_tr($i).">
            <td><a href=\"#\" onClick=\"refreshIt('content', 'detail_recherche.php?id_demande=".$affiche_requete['id_demande']."')\"><b>[".$affiche_requete['id_demande']."]</b></a></td>
            <td>".$affiche_requete['raison']."</td>
            <td>".$affiche_requete['pourquoi']."</td>
            <td>".detail_etatDemande_intitule($affiche_requete['etat_demande'])."</td>
            <td>".detail_sousetatDemande_intitule($affiche_requete['setat_demande'])."</td>
            <td>".$affiche_requete['date_demande']."</td>
            <td>".$affiche_requete['date_reponse']."</td>
            <td>".$affiche_requete['date_traitement']."</td>
            <td>".$affiche_requete['service']."</td>
            </tr>";
        $i++;
    }
     
    $f1 = new BuildForm();
     
        echo "<tr>";
        echo "<td>";
        echo $f1->simpleButton("Enregistrer au format Excel", "window.open('test_excelbis.php?tri=".$_GET['tri']."&choix_rubrique=".$_GET['choix_rubrique']."','_pop')", "buttons2");
        echo "</td>";
        echo "</tr>";
    echo "</table>";
     
    echo $page->divStop();
    ?>

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    tu n'utilises pas efficacement les SESSIONS.
    Ce sont les SESSIONS qui servent à construire la requête.

    Voici un modèle :
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    <?php
    // ---------------------------------
    // Initialisation : si elle n'existe pas, on crée une variable de session de type tableau nommée mesdonnees
    if(!isset($_SESSION['mesdonnees'])){
        $_SESSION['mesdonnees']	= array();
    }
    // ---------
    // Initialisation : VALEURS PAR DEFAUT
    if(!isset($_SESSION['mesdonnees']['critere1'])){
    	$_SESSION['mesdonnees']['critere1'] = 0;	// METTRE LA VALEUR PAR DEFAUT
    }
    // [....] (idem pour les autres critères)
    // ---------------------------------
    // Récupération depuis un formulaire
    if(isset($_POST['critere1']))
    {
        $_SESSION['mesdonnees']['critere1'] = intval($_POST['critere1']); // sinon : RIEN (on garde la valeur enregistrée en SESSION)
    }
    // [....] (idem pour les autres critères)
     
    // ***************************************************************
    // Construction de la REQUETE : clause WHERE
    $clauseWhere	= array();
    // ---------
    switch ($_SESSION['mesdonnees']['critere1']) {
    	case -99:	// tous
    	case 0:		// tous 
    		// $clauseWhere : (rien)
    		break;
    	default:	// choix critere1
    		$clauseWhere[]	= " champ_critere1 = '".$_SESSION['mesdonnees']['critere1']."' ";
    }
    // [....] (idem pour les autres critères)
     
    // ------------------------
    // recuperation : ORDRE DE TRI
    if(isset($_POST['tri']) && $_POST['tri']!='') {
    	$_SESSION['mesdonnees']['tri'] 		= mysql_real_escape_string($_POST['tri']);
    }
    // ------------------------
    // Pagination : Nombre par page
    if(isset($_POST['NbreParPage'])) {
    	$_SESSION['rechArticles']['NbreParPage'] 	= intval($_POST['NbreParPage']);
    }
     
    // ***************************************************************
    // RESULTAT DE LA RECHERCHE : CLAUSE WHERE
    		$clauseWhere 	= (empty($clauseWhere)) ? NULL : 'WHERE ' . implode(' AND ', $clauseWhere);
    // RESULTAT DE LA RECHERCHE : CLAUSE ORDER
    		$clauseOrder	= " ORDER BY ".$_SESSION['mesdonnees']['tri'];
    // ***************************************************************
    // PAGINATION
    	// LIENS vers chacune des pages
    	if (isset($_GET['page'])) {
    		// On récupère le numero de la page dans l'URL
    		$page 			= intval($_GET['page']);
    	} else { // si c'est la premiere fois qu'on charge la page
    		$page 			= 1; // On se met sur la page 1 (par défaut)
    	}
    	// --------------------------
    	// RESULTAT DE LA RECHERCHE : TOTAL ARTICLES de la Sélection
    	$rechTotal_query 	= "SELECT * FROM LATABLE ".
    						$clauseWhere.
    						$clauseOrder.";";
    	$rechTotal_result 	= mysql_query($rechTotal_query) or die('Erreur SQL :<br />'.$rechTotal_query.'<br />'.mysql_error());
    	$rechTotal_nombre 	= mysql_num_rows($rechTotal_result);
    	// -------------------------
    	// nombre de pages à créer
    	$nbreTotalPages 	= ceil($rechTotal_nombre / $_SESSION['mesdonnees']['NbreParPage']);
    	// -------------------------
    	// On calcule le numéro qu'on prend pour le LIMIT de MySQL (pagination)
    	$numPageDebut 		= ($page - 1) * $_SESSION['mesdonnees']['NbreParPage'];
    	// --------------------------------------------------
    	// RESULTATS de la Sélection à afficher par page
    	$rech_query 		= "SELECT * FROM LATABLE ".
    						$clauseWhere.
    						$clauseOrder.
    						" LIMIT ".$numPageDebut.",".$_SESSION['mesdonnees']['NbreParPage'].";";
    	$rech_result 		= mysql_query($rech_query) or die('Erreur SQL :<br />'.$rech_query.'<br />'.mysql_error());
    	$rech_nombre 		= mysql_num_rows($rech_result);
    // ***************************************************************
    ?>
    Dernière modification par Invité ; 03/05/2012 à 16h47.

  11. #11
    Membre habitué
    Inscrit en
    Octobre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 10
    Par défaut
    Tout d'abord je voudrais te dire un très très grand MERCI pour ton aide jreaux62 !

    Ensuite, je l'avoue je suis totalement novice et je rencontre pas mal de difficultés.

    J'ai repris l'exemple de code que tu me donnes dans ton dernier message et je l'ai réadapté à mon exemple de cas. Et je rencontre actuellement une erreur au niveau de la requête SQL.

    Mais il y a également une autre chose qui me chiffonne. Je l'avoue je suis novice et j'avance vraiment à tâtons. Je me dépatouille comme je peux, mais je suis souvent face à pas mal de difficultés.

    Je me rends compte que j'ai déjà pas mal sollicité le forum. Donc si au bout d'un moment vous ne souhaitez plus me guider dans mes difficultés je comprendrais.

    J'avance, mais vraiment lentement et avec difficulté. Donc je risque très probablement de beaucoup vous solliciter encore avant de pleinement réussir ce que je souhaite faire. Notamment toi jreaux62 qui m'a beaucoup aidé déjà, si cela te gêne n'hésites pas à me le dire.

    Sinon voici mon problème :

    Je teste si la valeur $clauseWhere est vide auquel cas elle prend la valeur "null" ou si elle contient les données récupérées dans les SESSIONS. Et ensuite avec l'implode je réaffiche l'ensemble des données sous la forme d'une chaîne de caractères.

    et la variable $clauseOrder contient une partie de la requête permettant le tri des données, ici avec tri qui est soit égal à ASC ou à DESC et choix_rubrique qui est égale au nom du champ inscrit pour effectuer le tri en fonction de ce champ.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // RESULTAT DE LA RECHERCHE : CLAUSE WHERE
    		$clauseWhere = (empty($clauseWhere)) ? NULL : 'WHERE '.implode(' AND ', $clauseWhere);
    // RESULTAT DE LA RECHERCHE : CLAUSE ORDER
    		$clauseOrder = " ORDER BY ".$_SESSION['mesdonnees']['choix_rubrique']." ".$_SESSION['mesdonnees']['tri']."";
    Et ensuite je tente d'exécuter la requête SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     $rechTotal_query = "SELECT * FROM demande ".$clauseWhere." AND demande.jur_id = ".$id_juridiction."".$clauseOrder.";";
    	$rechTotal_result = mysql_query($rechTotal_query) or die('Erreur SQL :<br />'.$rechTotal_query.'<br />'.mysql_error());
    Voilà ce qu'il m'affiche après avoir saisi dans mon formulaire l'état de la demande (1 = "non traité") et le type de matériel (1 = "ordinateur fixe") :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM demande WHERE Array AND demande.etat_demande = '1' AND demande.type_materiel = '1' AND demande.jur_id = 2 ORDER BY id_demande DESC;
    Unknown column 'Array' in 'where clause'
    Alors il m'affiche bien les données avec le implode mais il m'affiche également le type de la variable "array" avec un "AND" supplémentaire. Du coup la requête ne fonctionne pas.

    J'ai trouvé un exemple d'implode tout simple sur Internet où cela fonctionne. Mais pas dans mon cas. Pourquoi ?

    Voici l'exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $array = array(' nom', ' email', ' telephone');
    $comma_separated = implode(",", $array);
    echo $comma_separated; // nom,email,telephone
    J'ai également essayé en changeant le nom de ma variable. Au moment où je s'insère l'implode dans $clauseWhere. J'ai appelé la variable qui récupère le bout de la requête, $clauseWhere2 (en gardant toujours le $clauseWhere dans l'implode) et dans la requête également $clauseWhere2. Pour bien différencier les deux variables, mais cela ne fonctionne pas non plus.

    J'ai essayé pleins de petites modifications mineurs qui peuvent paraître ridicules, comme changer les guillemets doubles en guillemets simples dans le implode. Enlever la précision au moment où l'on créer et déclare la variable $clauseWhere qu'elle est de type tableau (le = array(), mais à éviter sinon cela génère une erreur). Je teste un peu tout pour voir ce que cela donne.

    Mais surtout, sans le "array" et le "AND" supplémentaire, la requête fonctionne. Je l'ai testé dans MySQL.

    Enfin voilà voilou, j'avance petit à petit lol.

    Mais petit à petit on devient moins petit. En tout cas j'espère devenir moins petit en programmation lol.

    Encore merci jreaux62 pour ton aide !

  12. #12
    Invité
    Invité(e)
    Par défaut
    Hello,
    peux-tu remettre l'ensemble de TON code (adapté et corrigé) ?
    (facultatif)
    [edit) OUPS !! Mea Maxima Culpa !!
    Remplace :
    // Construction de la REQUETE : clause WHERE
    $clauseWhere[] = array();
    Par :
    // Construction de la REQUETE : clause WHERE
    $clauseWhere = array();

  13. #13
    Membre habitué
    Inscrit en
    Octobre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 10
    Par défaut
    Pas de souci !

    Le voici :

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    <?php
     
    require_once 'core/iaw_init.php';
     
    $page = new BuildPage();
    $f1 = new BuildForm();
     
    $date_base = code_date($_POST['date']);
     
    if(isset($_GET['tri']))
    {
        $tri = $_GET['tri'];
        $champ = $_GET['choix_rubrique'];
    }
     
    else
    {
        $tri = false;
        $champ = false;
    }
     
    $id_juridiction = id_jur_utilisateur(uti_id());
     
    // ---------------------------------
    // Initialisation : si elle n'existe pas, on crée une variable de session de type tableau nommée mesdonnees
    if(!isset($_SESSION['mesdonnees']))
    {
        $_SESSION['mesdonnees'] = array();
    }
    // ---------
    // Initialisation : VALEURS PAR DEFAUT
    if(!isset($_SESSION['mesdonnees']['id']))
    {
    	$_SESSION['mesdonnees']['id'] = 0;	// METTRE LA VALEUR PAR DEFAUT
    }
     
    if(!isset($_SESSION['mesdonnees']['date']))
    {
    	$_SESSION['mesdonnees']['date'] = 0;	// METTRE LA VALEUR PAR DEFAUT
    }
     
    if(!isset($_SESSION['mesdonnees']['etat']))
    {
    	$_SESSION['mesdonnees']['etat'] = 0;	// METTRE LA VALEUR PAR DEFAUT
    }
     
    if(!isset($_SESSION['mesdonnees']['setat']))
    {
    	$_SESSION['mesdonnees']['setat'] = 0;	// METTRE LA VALEUR PAR DEFAUT
    }
     
    if(!isset($_SESSION['mesdonnees']['materiel']))
    {
    	$_SESSION['mesdonnees']['materiel'] = 0;	// METTRE LA VALEUR PAR DEFAUT
    }
     
    if(!isset($_SESSION['mesdonnees']['service']))
    {
    	$_SESSION['mesdonnees']['service'] = 0;	// METTRE LA VALEUR PAR DEFAUT
    }
    // ---------------------------------
    // Récupération depuis un formulaire
    if(isset($_POST['id']))
    {
        $_SESSION['mesdonnees']['id'] = intval($_POST['id']); // sinon : RIEN (on garde la valeur enregistrée en SESSION)
    }
     
    if(isset($_POST['date']))
    {
        $_SESSION['mesdonnees']['date'] = intval($_POST['date']); // sinon : RIEN (on garde la valeur enregistrée en SESSION)
    }
     
    if(isset($_POST['etat']))
    {
        $_SESSION['mesdonnees']['etat'] = intval($_POST['etat']); // sinon : RIEN (on garde la valeur enregistrée en SESSION)
    }
     
    if(isset($_POST['setat']))
    {
        $_SESSION['mesdonnees']['setat'] = intval($_POST['setat']); // sinon : RIEN (on garde la valeur enregistrée en SESSION)
    }
     
    if(isset($_POST['materiel']))
    {
        $_SESSION['mesdonnees']['materiel'] = intval($_POST['materiel']); // sinon : RIEN (on garde la valeur enregistrée en SESSION)
    }
     
    if(isset($_POST['service']))
    {
        $_SESSION['mesdonnees']['service'] = intval($_POST['service']); // sinon : RIEN (on garde la valeur enregistrée en SESSION)
    }
     
    // ***************************************************************
    // Construction de la REQUETE : clause WHERE
    $clauseWhere[] = array();
     
    if($_SESSION['mesdonnees']['id'])
    {
    	$clauseWhere[] = " demande.id_demande = '".$_SESSION['mesdonnees']['id']."' ";
    }
     
    if($_SESSION['mesdonnees']['date'])
    {
    	$clauseWhere[] = " demande.date_demande = '".$_SESSION['mesdonnees']['date']."' ";
    }
     
    if($_SESSION['mesdonnees']['etat'])
    {
    	$clauseWhere[] = " demande.etat_demande = '".$_SESSION['mesdonnees']['etat']."' ";
    }
     
    if($_SESSION['mesdonnees']['setat'])
    {
    	$clauseWhere[] = " demande.setat_demande = '".$_SESSION['mesdonnees']['setat']."' ";
    }
     
    if($_SESSION['mesdonnees']['materiel'])
    {
    	$clauseWhere[] = " demande.type_materiel = '".$_SESSION['mesdonnees']['materiel']."' ";
    }
     
    if($_SESSION['mesdonnees']['service'])
    {
    	$clauseWhere[] = " demande.service = '".$_SESSION['mesdonnees']['service']."' ";
    }
     
    // ------------------------
    if(!isset($_GET['tri']))
    {
    	$_SESSION['mesdonnees']['tri'] = "DESC";
    }
     
    if(!isset($_GET['choix_rubrique']))
    {
    	$_SESSION['mesdonnees']['choix_rubrique'] = "id_demande";
    }
     
    // recuperation : ORDRE DE TRI
    if(isset($_GET['tri']) && ($_GET['tri']!='')!='')
    {
    	$_SESSION['mesdonnees']['tri'] = mysql_real_escape_string($_GET['tri']);
    }
     
    // recuperation : RUBRIQUE
    if(isset($_GET['choix_rubrique']) && ($_GET['choix_rubrique']!='')!='')
    {
    	$_SESSION['mesdonnees']['choix_rubrique'] = mysql_real_escape_string($_GET['choix_rubrique']);
    }
     
    echo $page->divStart("scroll2");
     
    echo "<table class='tbDesign'>
            <thead>
                <th>ID
                <br/>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=asc&choix_rubrique=id_demande&clauseWhere=".$clauseWhere."')\"><img src= \"core/images/s_asc.png\" alt=\"tri croissant\" /></a>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=desc&choix_rubrique=id_demande&clauseWhere=".$clauseWhere."')\"><img src= \"core/images/s_desc.png\" alt=\"tri décroissant\" /></a></th>        
    
                <th>Raison
                <br/>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=asc&choix_rubrique=raison&monpostid=".$monpostid."&monpostetat=".$monpostetat."&monpostsetat=".$monpostsetat."&monpostdate=".$monpostdate."&monpostservice=".$monpostservice."')\"><img src= \"core/images/s_asc.png\" alt=\"tri croissant\" /></a>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=desc&choix_rubrique=raison&monpostid=".$monpostid."&monpostetat=".$monpostetat."&monpostsetat=".$monpostsetat."&monpostdate=".$monpostdate."&monpostservice=".$monpostservice."')\"><img src= \"core/images/s_desc.png\" alt=\"tri décroissant\" /></a>
                </th>
                            
                <th>Contrainte
                <br/>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=asc&choix_rubrique=pourquoi&monpostid=".$monpostid."&monpostetat=".$monpostetat."&monpostsetat=".$monpostsetat."&monpostdate=".$monpostdate."&monpostservice=".$monpostservice."')\"><img src= \"core/images/s_asc.png\" alt=\"tri croissant\" /></a>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=desc&choix_rubrique=pourquoi&monpostid=".$monpostid."&monpostetat=".$monpostetat."&monpostsetat=".$monpostsetat."&monpostdate=".$monpostdate."&monpostservice=".$monpostservice."')\"><img src= \"core/images/s_desc.png\" alt=\"tri décroissant\" /></a>
                </th>           
    
                <th>Etat
                <br/>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=asc&choix_rubrique=etat_demande&monpostid=".$monpostid."&monpostetat=".$monpostetat."&monpostsetat=".$monpostsetat."&monpostdate=".$monpostdate."&monpostservice=".$monpostservice."')\"><img src= \"core/images/s_asc.png\" alt=\"tri croissant\" /></a>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=desc&choix_rubrique=etat_demande&monpostid=".$monpostid."&monpostetat=".$monpostetat."&monpostsetat=".$monpostsetat."&monpostdate=".$monpostdate."&monpostservice=".$monpostservice."')\"><img src= \"core/images/s_desc.png\" alt=\"tri décroissant\" /></a>           
                </th>      
    
                <th>Sous état
                <br/>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=asc&choix_rubrique=setat_demande&monpostid=".$monpostid."&monpostetat=".$monpostetat."&monpostsetat=".$monpostsetat."&monpostdate=".$monpostdate."&monpostservice=".$monpostservice."')\"><img src= \"core/images/s_asc.png\" alt=\"tri croissant\" /></a>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=desc&choix_rubrique=setat_demande&monpostid=".$monpostid."&monpostetat=".$monpostetat."&monpostsetat=".$monpostsetat."&monpostdate=".$monpostdate."&monpostservice=".$monpostservice."')\"><img src= \"core/images/s_desc.png\" alt=\"tri décroissant\" /></a>
                </th>        
    
                <th>Date de la demande
                <br/>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=asc&choix_rubrique=date_demande&monpostid=".$monpostid."&monpostetat=".$monpostetat."&monpostsetat=".$monpostsetat."&monpostdate=".$monpostdate."&monpostservice=".$monpostservice."')\"><img src= \"core/images/s_asc.png\" alt=\"tri croissant\" /></a>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=desc&choix_rubrique=date_demande&monpostid=".$monpostid."&monpostetat=".$monpostetat."&monpostsetat=".$monpostsetat."&monpostdate=".$monpostdate."&monpostservice=".$monpostservice."')\"><img src= \"core/images/s_desc.png\" alt=\"tri décroissant\" /></a>
                </th>   
    
                <th>Date de la réponse
                <br/>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=asc&choix_rubrique=date_reponse&monpostid=".$monpostid."&monpostetat=".$monpostetat."&monpostsetat=".$monpostsetat."&monpostdate=".$monpostdate."&monpostservice=".$monpostservice."')\"><img src= \"core/images/s_asc.png\" alt=\"tri croissant\" /></a>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=desc&choix_rubrique=date_reponse&monpostid=".$monpostid."&monpostetat=".$monpostetat."&monpostsetat=".$monpostsetat."&monpostdate=".$monpostdate."&monpostservice=".$monpostservice."')\"><img src= \"core/images/s_desc.png\" alt=\"tri décroissant\" /></a>
                </th>
    
                <th>Date du traitement
                <br/>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=asc&choix_rubrique=date_traitement&monpostid=".$monpostid."&monpostetat=".$monpostetat."&monpostsetat=".$monpostsetat."&monpostdate=".$monpostdate."&monpostservice=".$monpostservice."')\"><img src= \"core/images/s_asc.png\" alt=\"tri croissant\" /></a>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=desc&choix_rubrique=date_traitement&monpostid=".$monpostid."&monpostetat=".$monpostetat."&monpostsetat=".$monpostsetat."&monpostdate=".$monpostdate."&monpostservice=".$monpostservice."')\"><img src= \"core/images/s_desc.png\" alt=\"tri décroissant\" /></a>
                </th>
    
                <th>Service juridique
                <br/>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=asc&choix_rubrique=service&monpostid=".$monpostid."&monpostetat=".$monpostetat."&monpostsetat=".$monpostsetat."&monpostdate=".$monpostdate."&monpostservice=".$monpostservice."')\"><img src= \"core/images/s_asc.png\" alt=\"tri croissant\" /></a>
                <a href=\"#\" onClick=\"refreshIt('content', 'liste_recherche.php?tri=desc&choix_rubrique=service&monpostid=".$monpostid."&monpostetat=".$monpostetat."&monpostsetat=".$monpostsetat."&monpostdate=".$monpostdate."&monpostservice=".$monpostservice."')\"><img src= \"core/images/s_desc.png\" alt=\"tri décroissant\" /></a>
                </th>
            </thead><tbody>";
     
     
    $array = array(' nom', ' email', ' telephone');
    $comma_separated = implode(",", $array);
    echo $comma_separated; // nom,email,telephone
     
    // ***************************************************************
    // RESULTAT DE LA RECHERCHE : CLAUSE WHERE
    		$clauseWhere = (empty($clauseWhere)) ? NULL : 'WHERE '.implode(' AND ', $clauseWhere);
    // RESULTAT DE LA RECHERCHE : CLAUSE ORDER
    		$clauseOrder = " ORDER BY ".$_SESSION['mesdonnees']['choix_rubrique']." ".$_SESSION['mesdonnees']['tri']."";
    // ***************************************************************
    //SELECT * FROM demande WHERE demande.etat_demande = '1' ORDER BY id_demande DESC AND demande.jur_id = 2;
    //
    //SELECT * FROM demande WHERE demande.etat_demande = '1' AND  demande.jur_id = 2 ORDER BY id_demande DESC;
    //
    //SELECT * FROM demande WHERE demande.etat_demande=1 AND demande.jur_id = 2
    // --------------------------
    // RESULTAT DE LA RECHERCHE : TOTAL DEMANDES de la Sélection
    	//$rechTotal_query = "SELECT * FROM demande".$clauseWhere."".$clauseOrder." AND demande.jur_id = ".$id_juridiction.";";
            $rechTotal_query = "SELECT * FROM demande ".$clauseWhere." AND demande.jur_id = ".$id_juridiction."".$clauseOrder.";";
    	$rechTotal_result = mysql_query($rechTotal_query) or die('Erreur SQL :<br />'.$rechTotal_query.'<br />'.mysql_error());
            $i = 0;
     
    while($affiche_requete = mysql_fetch_assoc($rechTotal_result))
    {
        echo "<tr".bgc_tr($i).">
            <td><a href=\"#\" onClick=\"refreshIt('content', 'detail_recherche.php?id_demande=".$affiche_requete['id_demande']."')\"><b>[".$affiche_requete['id_demande']."]</b></a></td>
            <td>".$affiche_requete['raison']."</td>
            <td>".$affiche_requete['pourquoi']."</td>
            <td>".detail_etatDemande_intitule($affiche_requete['etat_demande'])."</td>
            <td>".detail_sousetatDemande_intitule($affiche_requete['setat_demande'])."</td>
            <td>".$affiche_requete['date_demande']."</td>
            <td>".$affiche_requete['date_reponse']."</td>
            <td>".$affiche_requete['date_traitement']."</td>
            <td>".$affiche_requete['service']."</td>
            </tr>";
        $i++;
    }
     
    $f1 = new BuildForm();
        echo "<tr>";
        echo "<td>";
        echo $f1->simpleButton("Enregistrer au format Excel", "window.open('test_excelbis.php?tri=".$_GET['tri']."&choix_rubrique=".$_GET['choix_rubrique']."','_pop')", "buttons2");
        echo "</td>";
        echo "</tr>";
    echo "</table>";
     
    echo $page->divStop();
    ?>
    Alors cela marche mais à moitié lol. Par exemple, en choisissant l'état à "non traité" il ne m'affiche que quatre résultats, alors que je dois en avoir une bonne vingtaine dans ma base de données. J'essaye de voir où ça cloche. Si vraiment je n'y arrive pas je te demanderais.

    J'ai trouvé l'origine du problème. En affichant ma requête pour voir sa forme, je me suis rendu compte qu'elle garde tous les paramètres que j'ai saisi au moins une fois. Par exemple, j'ai fais un premier test de recherche avec l'état à "non traité" et le type de matériel à "ordinateur fixe". J'ai voulu ensuite faire une seconde recherche avec seulement l'état à "non traité" mais il m'a quand même gardé le type de matériel à "ordinateur fixe" d'où la raison qu'il ne m'affiche que 4 résultats au lieu de 15. Je vais essayer de voir comment arranger ça.

    J'avance petit à petit lol.

    Vraiment merci jreaux62 ! Sincèrement !

  14. #14
    Membre habitué
    Inscrit en
    Octobre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 10
    Par défaut
    Ca y est le vidage des sessions est fait.

    Il suffit simplement de vider la variable SESSION tableau qui contient l'ensemble des données au début de la page. Comme ça à chaque que l'on recharge la page, il réinitialise la variable et la vide. C'est tout bête lol.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['mesdonnees'] = Array();
    .

    J'avance, j'avance.

    Merci beaucoup !

  15. #15
    Membre habitué
    Inscrit en
    Octobre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 10
    Par défaut
    Je te dis un très très grand MERCI jreaux62 pour ton aide !!!

    C'est bon cela fonctionne !

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

Discussions similaires

  1. Perte de données sur retour formulaire
    Par Benzz dans le forum Langage
    Réponses: 7
    Dernier message: 09/03/2008, 13h10
  2. Perte de donnée d'un formulaire sur firefox
    Par oliv421 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/10/2007, 21h21
  3. Réponses: 14
    Dernier message: 15/05/2007, 15h51
  4. Réponses: 2
    Dernier message: 21/03/2007, 11h02
  5. Rediriger des données d'un formulaire vers deux pages différentes
    Par griese dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/12/2006, 12h30

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