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.