Yii实现多按钮保存与提交的方法

本文实例讲述了Yii实现多按钮保存与提交并且不冲突的实现方法。这是很多初学都曾遇到但是不知道如何解决的问题,下面分享给大家供大家参考。具体方法如下:

Yii中只有CForm才可以使用submitted() 方法 ,通过if($form->submitted('submit'))来判断是不是点击了buttonName为submit的按钮,比如:
表单:


代码如下:

'buttons'=>array(
        'preview'=>array(
            'type'=>'submit',
            'label'=>yii::t('core','Show preview'),
        ),
        'draft'=>array(
            'type'=>'submit',
            'label'=>yii::t('core','Save draft'),
        ),
        'submit'=>array(
            'type'=>'submit',
            'label'=>yii::t('core','Submit'),
        ),
        CHtml::link(yii::t('core','Cancel'),yii::app()->homeUrl),
),

控制器:


代码如下:

if($form->submitted('submit'))
 $model->status=Post::STATUS_PROPOSED;
else
 $model->status=Post::STATUS_DRAFT;

但是CActiveForm没有这个方法,一个解决方案是采用古典的html写法:

代码如下:

<input type="submit" name="submityes" value = <?php echo Yii::t('common', "Submit")?>>
if(isset($_POST['submityes']))

就行了。
 
最终运行效果如下图所示:

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

(0)

相关推荐

  • Yii入门教程之目录结构、入口文件及路由设置

    项目名称从"FantaCMS"修改成为"testyii"------ 俗! 1,项目目录结构分析 2,Yii入口文件分析 在Yii启动项目时,传递了项目主配置文件数组,那么Yii会在整个应用中绑定一个全局的Yii对象并且可以通过如下方法来调用该对象:Yii::app() Yii系统把配置文件中的数组值,通过键值对的形式绑定到了该对象上,例如在配置文件中我们配置了: 'name'=>'My Web Application', 那么我们在项目的任何一个地方通过该对

  • yii框架中的Url生产问题小结

    复制代码 代码如下: <?php echo CHtml::link('错误链接','user/register')?> <?php echo CHtml::link('正确链接',array('user/register'))?> 假定设定了UrlManager的配置为Path模式,用yii默认的配置: 复制代码 代码如下: 'urlManager'=>array( 'urlFormat'=>'path', 'rules'=>array( '<control

  • Yii获取当前url和域名的方法

    本文实例讲述了Yii获取当前url和域名的方法.分享给大家供大家参考.具体如下: 假设我们当前页面的访问地址是:http://localhost/CMS/public/index.php?r=news&id=1 一. 1.获取当前域名: 复制代码 代码如下: echo Yii::app()->request->hostInfo; 结果:http://localhost 2.获取(除域名外的)当前URL: 复制代码 代码如下: echo Yii::app()->request-&g

  • yii框架表单模型使用及以数组形式提交表单数据示例

    按Yii文档里的描述,Yii在处理表单的一般过程是: 创建表单对应的模型类,设置字段验证规则创建表单提交对应的action,处理提交的内容在视图中创建表单form在刚刚的一个小项目里,想使用ajax提交表单信息并验证保存,又不想用隐藏iframe来做无刷新提交,并且action中能够用到模型类的校验方法,就想到使用表单数组提交的方式,举个例子: form代码: 复制代码 代码如下: <form action='' method='post' name='form_test'>    <i

  • YII模块实现绑定二级域名的方法

    YII模块实现绑定二级域名主要有如下步骤: 首先在配置文件设置: 'urlManager' => array( 'urlFormat' => 'path', 'showScriptName' => false, //注意false不要用引号括上 'urlSuffix' => '.html', 'rules' => array( 'http://test.jb51.net'=>array('/blog', 'urlSuffix'=>", 'caseSens

  • Yii实现多按钮保存与提交的方法

    本文实例讲述了Yii实现多按钮保存与提交并且不冲突的实现方法.这是很多初学都曾遇到但是不知道如何解决的问题,下面分享给大家供大家参考.具体方法如下: Yii中只有CForm才可以使用submitted() 方法 ,通过if($form->submitted('submit'))来判断是不是点击了buttonName为submit的按钮,比如: 表单: 复制代码 代码如下: 'buttons'=>array(         'preview'=>array(             't

  • JavaScript在form表单中使用button按钮实现submit提交方法

    submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了,submit和button,二者都以按钮的形式展现,看起来都是按钮,所不同的是type属性和处发响应的事件上. 在javaScript中关于submit和button的区别介绍 在form表单提交中,使用button来间接完成submit的提交更为灵活.下面是实现方法: 使用button按钮实现submit提交,需要在button标签中的使用onclick方法,然后在JavaScript中实现具体,代码如下

  • 阻止表单提交按钮多次提交的完美解决方法

    如果表单是通过onsubmit进行Ajax提交,注意将表单提交按钮input type属性设为button,尽量不要设置为submit类型. 另外,在提交事件发出后,最好将提交按钮设置为disabled,防止由于网络延时问题,让用户有机会进行多次点击重复提交. onclick事件里面执行 $(this).attr('disabled','disabled'); 在点击一次后立马将按钮设置为不可使用. 或者向如下方法另行定义一个jQuery函数来进行控制: $("form").submi

  • Asp.net中阻止页面按钮多次提交的解决办法

    问题背景: 手头上的KPI分类评级考核系统,页面的提交按钮是用LinkButton或者Button做的.当大量用户同时在线访问该站点时,应用程序服务器出现CPU占用100%的糟糕状况,页面会卡住不动,用户不明情况连续点击提交按钮重复提交,造成数据库中出现大量的重复数据. 其实,即便服务器没有崩掉,快速频繁点击提交按钮,也会出现重复提交的问题. 尝试过:1)在提交按钮的点击事件里设置提交按钮的Enabled属性 Enabled = false; ,这个属性设置在未拿到新页面前是无效的,问题依然存在

  • javascript实现点击提交按钮后显示loading的方法

    本文实例讲述了javascript实现点击提交按钮后显示loading的方法.分享给大家供大家参考.具体如下: 这里可以实现点击提交按钮后显示loading,防止用户重复提交 <style> #loading { position:absolute; width:500px; height:50px; top:50%; left:50%; margin: -25px -150px; background-color:#FFFFFF; border:1px solid #CCCCCC; text

  • Yii框架中用response保存cookie,用request读取cookie的原理解析

    本文实例讲述了Yii框架中用response保存cookie,用request读取cookie的原理.分享给大家供大家参考,具体如下: 在学习cookie的时候,相信很多人和我有一样的疑惑?为什么保存cookie要用response,读取cookie却用request呢? 参考https://www.imooc.com/qadetail/188079 cookie是web服务器为了保存一些用户数据而创建保存在本地的一个加密文件,这些过程是由服务器操作,所以使用response.读取cookie数

  • Yii中Model(模型)的创建及使用方法

    本文实例分析了Yii中Model(模型)的创建及使用方法.分享给大家供大家参考,具体如下: YII 实现了两种模型,表单模型(CFormModel类)和Active Record模型(CAtiveRecord类),它们都继承自CModel类. CFormModel代表的数据模型是从HTML表单收集的输入,封装了所有逻辑(如表单的验证和其它业务逻辑,应用到表单的域上).它能将数据存储在内 存中,或者在一个Active Record的帮助下,存入数据库里. 数据库连接操作 在config/main.

  • jquery.cookie.js实现用户登录保存密码功能的方法

    本文实例讲述了jquery.cookie.js实现用户登录保存密码功能的方法.分享给大家供大家参考,具体如下: 需要导入的js有jquery.js和jquery.cookie.js <script type="text/javascript" src=" jquery-1.5.2.js"></script> <script type="text/javascript" src="jquery.cookie.

  • Django实现图片文字同时提交的方法

    本文实例讲述了Django实现图片文字同时提交的方法.分享给大家供大家参考.具体分析如下: jQuery为我们网站开发解决了很多问题,使我们的网站用户体验大大的提高了.举个简单的例子,我们用AJAX技术来实现对表单的异步提交,使用户在体验上有了很大的改观,用户在提交数据的同时还可以干一些其他的事情. 不过,今天在开发中遇到一个特别头痛的问题,刚开始不知道,以为可以实现,纠结了将近4个小时之久,但结果很是令人失望. 问题是这样的:为了提高用户体验,我决定使用AJAX异步提交,于是我用jQuery的

  • JS控制表单提交的方法

    本文实例讲述了JS控制表单提交的方法.分享给大家供大家参考.具体如下: <Script Language="JavaScript"> function autoSubmit(){ var form = document.forms[0]; var actionPath = "?mo=phone"; form.action = actionPath; form.submit(); return true; } </Script> 如果需要两个提

随机推荐