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 :

appeler une méthode via un formulaire


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut appeler une méthode via un formulaire
    Bonjour,
    si j'appelle la méthode en direct, elle marche mais pas si j'utilise un formulaire pour l'appeler. Mon code rendra les choses claires.

    La méthode (de la classe Ticket) :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public function test(){
        ?>
                 <form action="" method="POST">
     
            <input type="submit" name="submit1" value="test form"><br/>
            </form>
     
        <?php
        if (isset($_POST['submit1'])) $this->mouchard=TRUE;
        else $this->mouchard=FALSE;
    } //end method test()

    Le code qui marche :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $tic=new Ticket();
    $tic->test();
    var_dump($tic->mouchard);

    Le code qui marche pas (dans ce cas, je sélectionne test et la ligne 26 est bien appelée (j'ai vérifié)) :
    Code php : 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
    $tic=new Ticket();
    $meth=['Clean_Dbb','Csv_To_Db', 'test', 'product name'];
     
    ?>
    <html>
    <body>
        <form method="post" action="" onchange="submit();">
        <select name="meth" id="">
        <option value="0">list of methods</option>
        <?php
            foreach($meth as $met) {
                echo "<option value='".$met."'>".$met."</option>";
            }
        ?>
        </select>
        </form>
    </body>
    </html>
    <?php
    if (isset($_POST['meth'])) 
    { 
        if ($_POST['meth']!="0") {
            switch($_POST['meth']) {
                case 'Clean_Dbb' : {$tic->Clean_Dbb(); break;}
                case 'Csv_To_Db' : {$tic->Csv_To_Db(); break;}
                case 'test' : {$tic->test(); break;}
                case 'product name' : {$pn=$tic->Get_Product_Name(); break;}
                default : {$tic->mouchard=2; break;}
            }
     
        }    
    }
    var_dump($tic->mouchard);
    Quand ça marche, $tic->mouchard vaut TRUE et quand ça marche pas, FALSE. Pourquoi ? J'ai beau chercher, je comprends pas.

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    purée, tu ne veux rien savoir ! C'est dingue de s'entêter ainsi !
    Je te le répète, on ne teste pas du code comme ça, tu vas arriver à des cas de figure où le code d'un formulaire ne suffira pas et il faudra mettre les mains dans le cambouis pour modifier le code de ta classe (généralement en plus celui en production ) afin qu'elle ait à sa disposition ce qui manque à la méthode en test pour fonctionner (mocking).

    Bref, ne perds pas ton temps vainement.

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    OK, je laisse tomber. Néanmoins, quand on code une méthode, avant de la mettre en production, il faut bien la tester, non ? Comment tu fais, toi ?

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Des tests unitaires me paraissent une bonne idée, avec PHPUnit par exemple.

    Et évidemment, il faut faire des tests d'intégration en conditions réelles sur un environnement déployé le plus proche possible de l'environnement de production.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Néanmoins, quand on code une méthode, avant de la mettre en production, il faut bien la tester, non ? Comment tu fais, toi ?
    Moi je ne teste rien, pense-tu ! Pas besoin

  6. #6
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Je regarde l'utilisation de PHPUnit. Ici (https://phpunit.readthedocs.io/fr/la...tallation.html), ils disent qu'on a besoin de PHP7. Etant sous Wamp, aucun problème. Par contre, ils citent plusieurs extensions nécessaires (dom, json, pcre, reflection, spl). Aucune n'est signalée sous wamp...
    Ensuite, ils parlent de PHAR. Selon https://www.php.net/manual/fr/phar.installation.php, c'est présent par défaut depuis PHP5.3. Y faut quand même faire quelque chose ?

Discussions similaires

  1. [WD20] Appel d'une méthode via un webservice
    Par Invité dans le forum WinDev
    Réponses: 6
    Dernier message: 19/10/2015, 11h15
  2. [V8] Appeler une méthode à l'ouverture du formulaire
    Par guidono2 dans le forum Odoo (ex-OpenERP)
    Réponses: 1
    Dernier message: 22/07/2015, 14h09
  3. Appeler une méthode d'une classe JAVA via Javascript
    Par iliass001 dans le forum Général Java
    Réponses: 5
    Dernier message: 15/05/2013, 13h23
  4. Appeler une méthode d'objet via son nom à l'exécution
    Par Nono40 dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 09/02/2013, 11h51
  5. Appel d'une méthode via une variable.
    Par seiryujay dans le forum Général Java
    Réponses: 7
    Dernier message: 14/11/2006, 09h56

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