web-dev-qa-db-fra.com

Créer un formulaire en frontend dans un module

Suis en train de créer une recherche personnalisée simple, où les utilisateurs effectueront une recherche à l’aide d’une liste déroulante d’option, j’ai réussi à créer le module, mais je ne sais pas comment afficher le formulaire en mode frontal ni comment passer des valeurs à mon fichier d’aide pour validation, veuillez aider ! Ci-dessous mon code

modèle (helper.php)

public static function getdata($catid)
    {
          //$catid1=17;
           $res=array();
           $categories = JCategories::getInstance('Content');
           $cat = $categories->get($catid);
           $children = $cat->getChildren();
           $res['FieldofStudy']=$children;

        return $res;
    }

View (tmpl/default.php) Quel est le formulaire qui montre la liste de dépôt à renvoyer au contrôleur

            <select id="Field-of-Study" class="form-control">
                <?php foreach($res['FieldofStudy'] as $a){  ?>
                <option>
                <?php  echo $a->title ;  ?>
                </option>
                <?php } ?>
              </select>
2
Jimmy Obonyo Abor

Personnellement, je le ferais comme ça:

Disons que vous avez quelques champs de formulaire (par exemple, 2 entrées et une zone de sélection):

<form method="post" name="shout">

    <input name="myform[name]" type="text">

    <input name="myform[surname]" type="text">

    <select name="myform[study]" id="Field-of-Study" class="form-control">
        <?php foreach($res['FieldofStudy'] as $a) : ?>
            <option><?php echo $a->title; ?></option>
        <?php endforeach; ?>
    </select>

</form>

Remarquez que j'ai utilisé myform dans le name="" attribut.

Maintenant, dans votre fichier mod_mymodule.php, vous pouvez vérifier si la publication est définie et obtenir le tableau entier de votre formulaire de la manière suivante:

if (isset($_POST))
{
    $post = $app->input->post->get('myform', array(), 'array');

    // You can now access each field value using
    // $post['name']
    // $post['surname']
    // $post['study']
}

Pour mettre la publication dans une fonction dans le helper.php, vous devez d’abord appeler l’aide comme ceci:

$helper = new ModMYMODULEHelper();

Puis appelez la fonction depuis l’assistant

$helper->myfunction($post);

J'espère que cela t'aides

2
Lodder