【问题标题】:"document expired" with button submit on other action“文档已过期”,按钮提交其他操作
【发布时间】:2012-07-30 09:24:49
【问题描述】:

我在其他操作(无表单)上使用带有“提交”的 CHtml::button 并显示页面,但是当我单击 BACK 然后单击 NEXT 时,它显示 Document Expired

            <?php echo CHtml::button('title', array('submit' => array('/'.$_GET['id'].'/smthing/profile'))); //)?>

【问题讨论】:

  • Document Expired 表明您已发出POST 请求,然后尝试使用浏览器的导航按钮(后退、前进)再次导航到同一文档。您应该使用POST/Redirect/GET 模式来避免这种情况。
  • @DaveRandom 我想使用类似链接的按钮yiiframework.com/wiki/48/by-example-chtml/#hh1
  • 你有没有包裹这个按钮的&lt;form&gt; 元素?查看JS source 的实际作用,如果按钮不包含在表单元素中,Yii 会使用POST 的方法创建一个,并且这不能被覆盖,坦率地说这是荒谬的。试试echo '&lt;form action="" method="get"&gt;'; echo CHtml::button( ... ); echo '&lt;/form&gt;';
  • @DaveRandom 我没有表单元素,但我想使用类似链接的按钮,因为我有按钮的 css 样式,但我发现它适用于 CHtml::link。还是谢谢你:)。
  • 您可以通过使用 GET 方法将按钮包装在表单中来实现 - 请参阅先前评论中的代码示例。

标签: php html yii


【解决方案1】:

尝试从 POST 更改为 GET,例如活动表单:

 $form = $this->beginWidget('CActiveForm', array(
    'action' => '/',
    'method' => 'get',
    'enableClientValidation' => true,
    'clientOptions' => array(
        'validateOnSubmit' => true,
    ),
)); 
echo Chtml::submitButton('Submit');
$this->endWidget();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-10
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-06
    相关资源
    最近更新 更多