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 :

Formulaire s'appellant lui-même avec liens vers un autre formulaire [Fait]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 57
    Par défaut Formulaire s'appellant lui-même avec liens vers un autre formulaire
    Bonjour à tous,

    Dans une page php "repertoire.php", j'ai réalisé un formulaire d'affichage des données d'une table mysql.

    Ce formulaire se présente sous la forme d'un index alphabétique et d'un tableau qui contient 5 colonnes :

    • Colonne 0 : checkbox de sélection
    • Colonne 1 : Nom & Prénom (avec lien hypertexte vers "fiche.php")
    • Colonne 2 : adresse
    • Colonne 3 : coordonnées pro
    • Colonne 4 : coordonnées perso

    Dans le pied de formulaire, il y a un bouton "supprimer".

    Quand je clique sur une lettre de l'index, le formulaire rappelle la page php "repertoire.php", qui n'affiche que les contacts dont le nom commence par la lettre cliquée.
    Quand je clique sur le bouton supprimer, le formulaire rappelle la page php courante (repertoire.php) et effectue l'opération de suppression sur les contacts dont la checkbox est cochée.
    Tout ceci fonctionne bien.

    Mais j'ai plusieurs soucis :

    1. lorsque je clique sur une lettre de l'index et qu'ensuite je clique sur "refresh" ou "précédent" dans la barre d'outils du navigateur, celui-ci m'affiche un message d'avertissement comme quoi je vais renvoyer les données du formulaire. Je voudrais que ce message ne s'affiche plus.
    2. Pour l'instant, lorsque je clique sur le nom d'un contact, ça m'ouvre bien "fiche.php", mais je transfère l'ID du contact par GET (dans l'url). Ca m'ennuie. Peut-on transférer l'ID par POST et comment faire ?

    Je me doute que ces soucis sont liés au fait que je n'utilise pas les sessions, même si je le voudrais.
    Le problème, c'est que malgré mes lectures sur le sujet, je n'arrive pas à comprendre comment articuler ces deux pages php pour que tout ceci fonctionne comme je le voudrais.
    Puis-je gérer tout le répertoire avec une seule page php, ou dois-je le faire sur plusieurs pages php, pour utiliser les sessions ?

    Pouvez-vous m'aider ?

  2. #2
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par Lamanne Voir le message
    Bonjour à tous,
    Dans une page php "repertoire.php", j'ai réalisé un formulaire d'affichage des données d'une table mysql. .........
    Je crois voir ce que tu veux, tu me dis si c' est ça ...

    tu lis toute ta table Mysql
    et tu genere ligne par ligne chaque enregistrement, dans un TABLE(au)
    et en tête (dans le premier TD, se trouves case a cocher.)

    Enfin en bas un bouton d' action qui dans ton exemple est suppression !

    A mon avis pas besoins de session ou autre trucs genre cookies !

    Il te suffit de capter au rappel du php. les POST
    et de supprimer tout les cochés, ensuite revient l'affichage normal ou bien sur il n' y aura plus les supprimés

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 57
    Par défaut
    Ben oui, ça c'est la solution que j'ai déjà implémenté.

    Mais ça ne résout pas les pb ci-dessus, notamment le pb de la boite de dialogue suivante :
    "Pour afficher cette page, les informations précédemment transmises par Firefox doivent être renvoyées. Ceci répétera toute action (telle qu'une recherche ou un ordre d'achat) entreprise précédemment."
    quant je fais refresh ou précédent...

  4. #4
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par Lamanne Voir le message
    Ben oui, ça c'est la solution que j'ai déjà implémenté.

    Mais ça ne résout pas les pb ci-dessus, notamment le pb de la boite de dialogue suivante :
    "Pour afficher cette page, les informations précédemment transmises par Firefox doivent être renvoyées. Ceci répétera toute action (telle qu'une recherche ou un ordre d'achat) entreprise précédemment."
    quant je fais refresh ou précédent...
    Non pas exactement, en effet, cela se passe ainsi dans les
    pages UNIQUES "Saisie -Mise a Jour"

    Bien sur je mets nimporte quoi, mais c'est pour te montrer l'architecture de la page comme je la voie et ne plantant pas si F5 ou back ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?PHP
    if (isset($_POST["LArea"])) $LArea=trim($_POST["LArea"]);
       else $LArea="";
    if (isset($_POST["Ltitre"])) $Ltitre=trim($_POST["Ltitre"]);
       else $Ltitre="";
    if ($LArea!="" && $Ltitre!="")
     {
     // Alors mise a jour supression bref ce qu'on veur
     
     }
    // Et de toute façon on reafiche les ligne ainsi modifiées
    ?>

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 57
    Par défaut
    Je ne comprends pas vraiment la différence avec mon code.

    Je te joins le diagramme de fonctionnement :




    et mon code d'aiguillage, à l'entrée de la page :

    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
     
    // Récupère les variables "POST"
    $btnAction = JRequest::getVar('btnAction');
    $btnActionSuppr = JRequest::getVar('btnActionSuppr');
    $btnActionArch = JRequest::getVar('btnActionArch');
    $tabcheckbox = JRequest::getVar($prefixcheckbox);
    $tabIdxAlpha = JRequest::getVar('btnIdxAlpha');
    $tabIdxAlphaTri = JRequest::getVar('btnIdxAlphaTri');
    $varFiltreTri = explode("|",JRequest::getVar('varFiltreTri'));
     
    // Détermine la page à afficher
    if (isset($btnAction)) {
        switch ($btnAction) {
            case 'Supprimer' :                    // Affiche la page de confirmation de suppression
                if(isset($tabcheckbox)) {    // Nb éléments à supprimer non null
                    $ContactsSelectionnes = $tabcheckbox;
                    fncConfirmerSuppressionListe ($ContactsSelectionnes, $prefixcheckbox, $prefixlignetab);
                } else {
                    // Affiche le messag "Aucun contact à supprimer"
                    fncAfficherSuppressionAucun();
                }
                break 1;
            case 'Archiver' :                    // Affiche la page de confirmation d'archivage
                if(isset($tabcheckbox)) {    // Nb éléments à supprimer non null
                    $ContactsSelectionnes = $tabcheckbox;
                    fncConfirmerArchivageListe ($ContactsSelectionnes, $prefixcheckbox, $prefixlignetab);
                } else {
                    // Affiche le messag "Aucun contact à archiver"
                    fncAfficherArchivageAucun();
                }
                break 1;
        }
     
    } elseif ($btnActionSuppr) {
        switch ($btnActionSuppr) {
            case 'Archiver' :                    // Archive les éléments sélectionnés
                if(isset($tabcheckbox)) {    // Nb éléments à archiver non null
                    $ContactsSelectionnes = $tabcheckbox;
                    // Archive les contacts sélectionnés
                    $nbContactsArchives = V1JBddContacts::fncBDDArchiverListeContacts($ContactsSelectionnes);
                    // Affiche le répertoire
                    fncAfficherRépertoire ($globvars['V1JIconesPath'], 
                        $prefixcheckbox, $prefixlignetab, $tabIdxAlpha, $tabIdxAlphaTri, $varFiltreTri);
                } else {
                    // Affiche le messag "Aucun contact à archiver"
                    fncAfficherArchivageAucun();
                }
                break 1;
            case 'Supprimer' :                    // Supprime les éléments sélectionnés
                if(isset($tabcheckbox)) {    // Nb éléments à supprimer non null
                    $ContactsSelectionnes = $tabcheckbox;
                    // Supprime les contacts sélectionnés
                    $nbContactsSupprimes = V1JBddContacts::fncBDDSupprimerListeContacts($ContactsSelectionnes);
                    // Affiche le répertoire
                    fncAfficherRépertoire ($globvars['V1JIconesPath'], 
                        $prefixcheckbox, $prefixlignetab, $tabIdxAlpha, $tabIdxAlphaTri, $varFiltreTri);
                } else {
                    // Affiche le messag "Aucun contact à supprimer"
                    fncAfficherSuppressionAucun();
                }
                break 1;
            case 'Annuler' :    // Affiche le répertoire
                fncAfficherRépertoire ($globvars['V1JIconesPath'], 
                    $prefixcheckbox, $prefixlignetab, $tabIdxAlpha, $tabIdxAlphaTri, $varFiltreTri);
                break 1;
        }
     
    } elseif ($btnActionArch) {
        switch ($btnActionArch) {
            case 'Archiver' :                    // Archive les éléments sélectionnés
                if(isset($tabcheckbox)) {    // Nb éléments à archiver non null
                    $ContactsSelectionnes = $tabcheckbox;
                    // Archive les contacts sélectionnés
                    $nbContactsArchives = V1JBddContacts::fncBDDArchiverListeContacts($ContactsSelectionnes);
                    // Affiche le répertoire
                    fncAfficherRépertoire ($globvars['V1JIconesPath'], 
                        $prefixcheckbox, $prefixlignetab, $tabIdxAlpha, $tabIdxAlphaTri, $varFiltreTri);
                } else {
                    // Affiche le messag "Aucun contact à archiver"
                    fncAfficherArchivageAucun();
                }
                break 1;
            case 'Annuler' :    // Affiche le répertoire
                fncAfficherRépertoire ($globvars['V1JIconesPath'], 
                    $prefixcheckbox, $prefixlignetab, $tabIdxAlpha, $tabIdxAlphaTri, $varFiltreTri);
                break 1;
        }
     
    } elseif ($tabidxalpha) {    // Clic sur une lettre de l'index alpha
        // Affiche le répertoire
        fncAfficherRépertoire ($globvars['V1JIconesPath'], 
            $prefixcheckbox, $prefixlignetab, $tabIdxAlpha, $tabIdxAlphaTri, $varFiltreTri);
     
     
     
    } else {    // Affiche le répertoire
        fncAfficherRépertoire ($globvars['V1JIconesPath'], 
            $prefixcheckbox, $prefixlignetab, $tabIdxAlpha, $tabIdxAlphaTri, $varFiltreTri);
     
    }
    Vois-tu ce qui fait afficher ce message ?
    Images attachées Images attachées  

  6. #6
    FoxLeRenard
    Invité(e)
    Par défaut
    La je cale un peut
    Je vais essayer de relire ça au calme ...

Discussions similaires

  1. répertoire avec liens vers d'autres répertoires
    Par deltamoins dans le forum Administration système
    Réponses: 8
    Dernier message: 22/03/2012, 13h43
  2. Réponses: 7
    Dernier message: 12/07/2007, 14h24
  3. XML avec liens vers XSL ET CSS !!
    Par Steff1985 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 23/03/2006, 12h39

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