web-dev-qa-db-fra.com

Comment faire en sorte que les actions de formulaire fonctionnent?

J'apprends à créer mon propre module sur Joomla. MyModule mod_planejamentomensal.php est comme ceci:

//No direct access 
defined('_JEXEC') or die;
require_once dirname(__FILE__) . '/helper.php';

Jhtml::_('jquery.framework');
Jhtml::_('jquery.ui');
JHtml::_('behavior.formvalidator');
JHtml::script(JURI::base() . '/modules/mod_planejamentomensal/js/jquery-3.3.1.js');
JHtml::script(JURI::base() . '/modules/mod_planejamentomensal/js/jquery.mask.js');

default.php a ma forme (avec quelques autres fichiers et jQuery, j'en copie une partie ici pour que ce ne soit pas trop long):

 <div class="planj-mensal-form">
  <form method="post" name="frmCasdastra" class="form-validate" action="<?php JURI::base() . '/modules/mod_planejamentomensal/tmpl/adicionaForm.php' ?>">
    <div class="divTable">
        <div class="divTableRow">
            <div class="divTableColumn">
                <b>Solicitação nº:</b> <?php //echo $solicitacaoTemp; ?>
            </div>
        </div>


      <div class="divTableRow">
            <div class="divTableColumn divTableColumn1">
                <b>Agência:</b> <?php echo $grupo; ?>
            </div>
            <div class="divTableColumn divTableColumn2">
                <div class="divLabel"><label for="mes">Mês Referência:</label></div>
                <div class="divInput">
                <select name="mes">
                <?php 
                    $select = $planMensal->setSelect($mes, 'mes', date('m',strtotime('+1 month'))); 
                    echo $select;
                ?>
                </select>
                </div>
           </div>
        </div>
            <div class="divTableRow">
            <div class="divtableColumnBotao">
                <div class="divInput">
                    <input name="add" type="button" value="Adicionar mais um formulário" id="add">
              </div>
            </div>
        </div>
    </div>
  </form>  
</div>

Ainsi, mon action de formulaire ci-dessus pointe vers adicionaForm.php qui ressemble à:

<?php

 defined('_JEXEC') or die;

$input = new JInput;
$teste = $input->get('mes',null);

echo "Show: ".$teste;
?>

Mais lorsque je clique sur le bouton de soumission, rien ne se passe ... Je sais qu'il doit y avoir quelque chose sur Joomla que je fais mal. J'ai essayé de lire la documentation pour les formulaires mais je n'y comprenais pas grand chose. Quelqu'un peut-il me donner un indice s'il vous plaît?

1

Remplacez type="button" Par type="submit".

De Documentation Mozilla :

Les éléments <input type="button"> N'ont pas de comportement par défaut (leurs cousins, <input type="submit"> Et <input type="reset"> Sont utilisés pour soumettre et réinitialiser des formulaires, respectivement). Pour que les boutons fassent n'importe quoi, vous devez écrire du code JavaScript pour faire le travail.

et

Remarque: Bien que les éléments <input> De type "bouton" soient toujours parfaitement valables en HTML, l'élément <button> Le plus récent est désormais le moyen privilégié de créer des boutons. Etant donné que le texte de l’étiquette de <button> Est inséré entre les balises d’ouverture et de fermeture, vous pouvez inclure du code HTML dans l’étiquette, même des images.

1
Sharky