CakePHP 1.3:为一个动作传递参数


CakePHP 1.3: passing an argument for an action

我有一个下拉表单,选项值为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));
?>

试一下,你可能要根据你的需要调整一些东西。欢呼。安德鲁