Question

Hi im kinda new in cakephp and having a lot of trouble adjusting.. Here's my biggest problem ..

Im trying to pass a parameter to an action, it does load, but when my script goes from the controller to the view, and goes back to the controller again, its gone.

CONTROLLER CODE

 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();

}

VIEW CODE (This is a menu, i only have one button right now)

 <fieldset>

 <legend>SELECCIONE SU ALERTA</legend>

 <?php 

  echo $form->create('Event'); 

  echo $form->submit('EMERGENCIA MEDICA',array('name'=>'medico')); 

  echo $form->end();

  ?> 

  </fieldset>
Was it helpful?

Solution

When you create the form you don't include the additional url parameters or the fields as inputs. Without either of these the parameters will vanish as they are not part of the new request. You can append additional parameters to the form submission url with

$form->create('Event', array(
    'url' => array('something', 'somethingelse')
));

This will create a form that points at /events/add/something/somethingelse.

OTHER TIPS

I'm no big fan of using some helpers (like $html) or some methods (like $form's create() and end()). I kinda didn't get your problem, but I think it might be that you have to make a POST request to the same url you are actually into.

<form method="GET" action="<?=$this->here ?>">

Maybe you should give a further explanation of what you are trying to achieve.

You might want to try using named parameters.

I asked a similar question which you might find helpful:

cakephp adding record with some parameters fixed

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top