CakePHP passant les paramètres à l'action
-
21-09-2019 - |
Question
Salut, je suis un peu nouveau dans Cakephp et j'ai beaucoup de mal à m'adapter.Voici mon plus gros problème..
J'essaie de transmettre un paramètre à une action, il se charge, mais lorsque mon script passe du contrôleur à la vue et retourne à nouveau au contrôleur, il disparaît.
CODE DU CONTRÔLEUR
function add($mac = 0)
{
if(isset($this->params['form']['medico']))
{
$temp= $this->Person->find('first', array('conditions' => array('smartphones_MAC' => $mac)));
$id= $temp['Person']['id'];
$this->Union->set('events_id', $id+1);
$this->Union->set('people_id', $id);
$this->Union->save();
}
AFFICHER LE CODE (Ceci est un menu, je n'ai qu'un seul bouton pour le moment)
<fieldset>
<legend>SELECCIONE SU ALERTA</legend>
<?php
echo $form->create('Event');
echo $form->submit('EMERGENCIA MEDICA',array('name'=>'medico'));
echo $form->end();
?>
</fieldset>
La solution
Lorsque vous créez le formulaire que vous ne pas inclure les paramètres d'URL supplémentaires ou les champs comme entrées. Sans l'un de ces paramètres disparaîtront car ils ne font pas partie de la nouvelle demande. Vous pouvez ajouter des paramètres supplémentaires à l'URL de soumission de formulaire avec
$form->create('Event', array( 'url' => array('something', 'somethingelse') ));
Cela va créer une forme qui pointe à /events/add/something/somethingelse
.
Autres conseils
Je ne suis pas un grand fan de l'utilisation de certaines aides (comme $html) ou de certaines méthodes (comme create() et end() de $form).Je n'ai pas compris votre problème, mais je pense qu'il se peut que vous deviez faire une requête POST à la même URL que celle dans laquelle vous vous trouvez réellement.
<form method="GET" action="<?=$this->here ?>">
Peut-être devriez-vous donner une explication plus détaillée de ce que vous essayez de réaliser.
Vous pouvez essayer d'utiliser paramètres nommés .
J'ai posé une question similaire que vous pourriez trouver utile: