zaley 2013-01-08 08:48:42 2948次浏览 4条回复 0 0 0

例如 在 view上 点了 一 submit 按钮, 程序是如何 走到 Control 的 action Function 函数的 ? 以前一直用 Windows/C++ 编程,脑筋转不过弯来。

我看了一下,view里 只有 这样的 Jquery代码

$("input[type=submit]").click(function(){
    ...
})

找不到 设置链接的地方

  • 回复于 2013-01-08 10:25 举报

    submit是提交form表单
    表单上有action地址
    把数据交由新页来处理
    至于怎么就走到action function的
    yii有个urlmanage组件 负责解析url后来进行调用对应/model/controller/action的类的方法的
    我也半吊子 呵呵 也说不清

  • 回复于 2013-01-08 10:35 举报

    表单上好像没看到action地址啊

    <?php echo CHtml::beginForm(); ?>
    <div class="button-actions clearfix">
    <input type="submit" value="<?php echo Yii::t('XXX', 'Save And Run'); ?>" name="saverun" class="btn" />
    ......
    <?php echo CHtml::endForm();?>
    
  • 回复于 2013-01-08 12:01 举报

    可以设置的,不设置,默认就是当前页了。

  • 回复于 2013-01-08 13:32 举报

    这样一解释,豁然开朗,谢谢。
    我看了 CHtml.php源码

    public static function beginForm($action='',$method='post',$htmlOptions=array())
    {
        $htmlOptions['action']=$url=self::normalizeUrl($action);
    	public static function normalizeUrl($url)
    	{
    		if(is_array($url))
    		{
    			if(isset($url[0]))
    			{
    				if(($c=Yii::app()->getController())!==null)
    					$url=$c->createUrl($url[0],array_splice($url,1));
    				else
    					$url=Yii::app()->createUrl($url[0],array_splice($url,1));
    			}
    			else
    				$url='';
    		}
    		return $url==='' ? Yii::app()->getRequest()->getUrl() : $url;
    	}
    }
    

    确实这样

您需要登录后才可以回复。登录 | 立即注册