Debes reemplazar 'navieras_id' por la variable que viene por post o data,
del select que está en tu formulario y se envía por post o data.

 'navieras_id' solo es un ejemplo de lo que debes poner ahí.

El 24 nov. 2017 10:45 AM, "Misael Morin" <xxxroyxxxmustang...@gmail.com>
escribió:

> hola que tal gracias por ayudarme pero con el switch en el controlador me
> marca error con la palabra case si lo hago con if no me funciona bien no me
> marca error pero ignora la condición y la banca se va directo al else esto
> es lo que tengo con if else
> public function add()
>     {
>         $contenedore = $this->Contenedores->newEntity();
>
>         if ($this->request->is('post')) {
>             $contenedore = $this->Contenedores->patchEntity($contenedore,
> $this->request->getData());
>             if ('navieras_id') {
>             if ($this->Contenedores->save($contenedore))
>             {
>
>                 $this->Flash->success(__('The contenedore has been
> saved.'));
>
>                   if('navieras-id' ==1){
>                   $this->redirect(['controller'=>'Complementos', 'action'
> => 'add']); //crea la vista uno que obviamente es un action dentro del
> controlador
>                 }
>                 else
>                 {
>                  $this->redirect(['controller' => 'controlador','action'
> => 'acccion_navieras_2']); //crea la vista dos que obviamente es un action
> dentro del controlador
>                   }
>                 //return $this->redirect(['controller'=>'Complementos',
> 'action' => 'add']);
>                 }
>             $this->Flash->error(__('The contenedore could not be saved.
> Please, try again.'));
>
>         }}
>         $navieras = $this->Contenedores->Navieras->find('list',
> ['keyField' => 'id','valueField'=>'razon_social']);
>         $this->set(compact('contenedore', 'navieras'));
>         $this->set('_serialize', ['contenedore']);
>
>     }
>
> y esto es lo que tu me habías propuesto:
>
> public function add()
>     {
>         $contenedore = $this->Contenedores->newEntity();
>
>         if ($this->request->is('post')) {
>             $contenedore = $this->Contenedores->patchEntity($contenedore,
> $this->request->getData());
>             if ('navieras_id') {
>             if ($this->Contenedores->save($contenedore))
>             {
>
>                 $this->Flash->success(__('The contenedore has been
> saved.'));
>                 swicth($navieras)
>                 {
>                   case 0:
>                   $this->redirect(['controller'=>'Complementos', 'action'
> => 'add']); //crea la vista uno que obviamente es un action dentro del
> controlador
>                   break;
>                   case 1:
>                   $this->redirect(['controller' => 'controlador','action'
> => 'acccion_navieras_2']); //crea la vista dos que obviamente es un action
> dentro del controlador
>                   break;
>                 //return $this->redirect(['controller'=>'Complementos',
> 'action' => 'add']);  }
>             $this->Flash->error(__('The contenedore could not be saved.
> Please, try again.'));
>
>         }}
>         $navieras = $this->Contenedores->Navieras->find('list',
> ['keyField' => 'id','valueField'=>'razon_social']);
>         $this->set(compact('contenedore', 'navieras'));
>         $this->set('_serialize', ['contenedore']);
>
>     }
>
>
> y este es el error que me arroja
>
> syntax error, unexpected 'case' (T_CASE)
> de igual manera gracias nuevamente
>
> El jueves, 23 de noviembre de 2017, 12:14:52 (UTC-6), kraxbox escribió:
>>
>> si lo que quieres es que después de hacer save re direcciones a una vista
>> determinada dependiendo de la selección en Navieras con el switch y
>> redirect es suficiente
>>
>> //este código debe ir después del save dentro del controlador en el
>> action add, olvida Jquery
>>
>> swicth(opcion_navieras){
>>       case 0:
>>        $this->redirect(['controller' => 'controlador','action' =>
>> 'acccion_navieras_1']); //crea la vista uno que obviamente es un action
>> dentro del controlador
>>      break;
>>      case 0:
>>        $this->redirect(['controller' => 'controlador','action' =>
>> 'acccion_navieras_2']); //crea la vista dos que obviamente es un action
>> dentro del controlador
>>      break;
>> }
>>
>> El jueves, 23 de noviembre de 2017, 11:59:00 (UTC-6), Misael Morin
>> escribió:
>>>
>>>
>>>>> mas bien seria que depende la seccion de navieras el controlador envie
>>>>> a una vista o a otra pero no se como hacer eso seria de igual manera con
>>>>> jquery o como de igual manera gracias por tu pronta respuesta
>>>>>
>>>>
>>> El jueves, 23 de noviembre de 2017, 11:42:55 (UTC-6), kraxbox escribió:
>>>>
>>>> Haber si entiendo bien, dependiendo de la selección de Navieras el form
>>>> se redirija a diferentes acciones en el Controlador, lo que yo haría es
>>>> cambiar la propiedad del action del Form, y esto como se cambia: con jquery
>>>> facil
>>>>
>>>> $("#id_select").change(function(){
>>>>       switch($("#id_select").val()){
>>>>            case 0:
>>>>                 $('#formId').attr('action', '/controlador/accion1');
>>>>                break;
>>>>            case 1:
>>>>                  $('#formId').attr('action', '/controlador/accion2');
>>>>                break;
>>>>       }
>>>> });
>>>>
>>>> Espero te sirva
>>>> El jueves, 23 de noviembre de 2017, 10:32:44 (UTC-6), Misael Morin
>>>> escribió:
>>>>>
>>>>>
>>>>> <https://lh3.googleusercontent.com/-2uZBoCfipJc/Whb3K2Ume1I/AAAAAAAALr8/hm-CHVWA2xQUpZn0RZuKAFaFkUxfOS89QCLcBGAs/s1600/Captura%2Bde%2Bpantalla%2B2017-11-23%2B10.26.08.png>
>>>>> Hola que tal en una vista tengo una lista desplegable que muestro
>>>>> datos desde otra tabla lo que quiero hacer es que si de esos datos que
>>>>> muestro hapag o maersk que si selecciono 1 haga una accion en el 
>>>>> contolador
>>>>> y si selecciono el otro haga una accion diferente
>>>>>
>>>>> este es mi controlador  para esta vista pero no se como lo podria
>>>>> hacer si con un if o con que si alguein me pudiera ayudar se lo 
>>>>> agradeceria
>>>>> mucho
>>>>>
>>>>>
>>>>> <https://lh3.googleusercontent.com/-MopkKKEtMao/Whb33xnFcGI/AAAAAAAALsE/egH6O62n94Ik6Pn5htSqxhVcPjF-LjoiQCLcBGAs/s1600/Captura%2Bde%2Bpantalla%2B2017-11-23%2B10.25.43.png>
>>>>>
>>>>> --
> Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de
> Grupos de Google.
> Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes,
> envía un correo electrónico a cakephp-es+unsubscr...@googlegroups.com.
> Para publicar en este grupo, envía un correo electrónico a
> cakephp-es@googlegroups.com.
> Visita este grupo en https://groups.google.com/group/cakephp-es.
> Para acceder a más opciones, visita https://groups.google.com/d/optout.
>

-- 
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos 
de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, 
envía un correo electrónico a cakephp-es+unsubscr...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a 
cakephp-es@googlegroups.com.
Visita este grupo en https://groups.google.com/group/cakephp-es.
Para obtener más opciones, visita https://groups.google.com/d/optout.

Responder a