我有一个下拉表单,选项值为1,2,3。当这个表单被提交($this->Form->create('MyModel', array('action' => 'view'))
)时,我希望这些选项之一是一个参数变量,它被传递到动作view
并转到controller/view/option_value
,这样我就可以使用option_value
加载一些适当的数据。
我似乎不能把这个option_value
作为动作参数传递。这是一个POST数据,所以我确实在控制器中有这个option_value
可供我使用,但我认为在URL中有这个值也会很好,因为这个view.ctp
允许用户更新一些东西,我希望用户能够轻松地重定向到referrer。
任何想法?我认为这是客户端的问题。但是我还不熟悉javascript。
编辑:还在研究如何做到这一点…但是现在,我只是重定向表单提交的页面,它不包括URL中的option_value
,到与option_value
作为参数的同一页面。它为我所需要的工作,但如果有人想添加一个答案,我会很感激!
使用jQuery:
<?php
echo $this->Form->create('MyModel', array('id' => 'myForm', 'action' => 'view'));
echo $this->Form->input('MyField', array('id' => 'myField'));
echo $this->Html->scriptStart();
?>
$('#myForm').on('submit', null, null, function(evt) {
var form = $('myForm'),
field = $('#myField');
form.action += "/" + field.value;
form.submit();
evt.stopPropagation();
});
<?php
echo $this->Html->scriptEnd();
echo $this->Form->end(__('Submit', true));
?>
试一下,你可能要根据你的需要调整一些东西。欢呼。安德鲁