张曦 2012-08-30 00:34:57 3398次浏览 13条回复 0 0 0

如图所示[attach]872[/attach] 当各项填写完毕,点击生成后,会在后台生成10个充值卡账号的列表(密码暂且不管),充值卡的张数视填写数额的大小而定,这是一个create式的添加。我的疑惑是,如何根据填写的数额生成等量的列表,并写入数据库,有知道的指点一下迷津吧,谢谢啦。:)

  • 回复于 2012-08-30 10:37 举报

    就是根据填写的数额进行[b][color=Red]for循环[/color][/b]生成呗。

  • 回复于 2012-08-30 10:55 举报

    写了,还是有问题,循环没有出来,代码如下

    public function actionAddChongzhika(){
    $model=new Chongzhika;
    if(isset($_POST['Chongzhika']))
    {
    	$num = $model->num ;//充值卡填写数量
    	for($k=0;$k<$num;$k++){
    	$model->attributes=$_POST['Chongzhika'];
    	$num = $model->num ;
    	$card = $model ->cardcode;
    	$model->cardcode = $card.Yii::app()->gvar->getcardcode($num);//返回充值卡字符串
    	
    	if($model->save())
    		$this->redirect(array('chongzhikaList',));
    	$model->id++;
    }
    }
    $this->render('addchongzhika',array(
    		'model'=>$model,
    ));
    }
    
  • 回复于 2012-08-30 11:08 举报

    $num = $model->num ;//充值卡填写数量这个的值对吗?感觉应该是 $num = $_POST['Chongzhika']['num']

  • 回复于 2012-08-30 11:12 举报

    这个值是没问题的,数据库有显示这个值,换做post方式后效果一样,还是只插进一条值。。

  • 回复于 2012-08-30 11:23 举报

    $model->isNewRecord = TRUE;在循环里,save之前加上这句话试试。

  • 回复于 2012-08-30 11:32 举报

    ...还是不行,依然是一条数据:'(,抓心挠肝啊

  • 回复于 2012-08-30 11:34 举报

    ...还是不行,依然是一条数据,抓心挠肝啊

  • 回复于 2012-08-30 12:14 举报

    发出完整代码来看看。。

  • 回复于 2012-08-30 12:38 举报
    //充值卡自动生成卡号 定义在一个公共方法的文件夹下
    public function getcardcode($num){
    	$time = '20'.substr(date('Y'),-2).date('md');
    	$number = sprintf("%04d",$num);
    	$cardcode = $time.$number;
    	return $cardcode;
    }//控制器
    public function actionAddChongzhika(){
    $model=new Chongzhika;
    if(isset($_POST['Chongzhika']))
    {
    	$num = $_POST['Chongzhika']['num'];//充值卡填写数量
    	for($k=0;$k<$num;$k++){
    	$model->attributes=$_POST['Chongzhika'];
    	$num = $_POST['Chongzhika']['num'];
    	$card = $model ->cardcode;
    	$model->cardcode = $card.Yii::app()->gvar->getcardcode($num);//返回充值卡字符串
    	$model->isNewRecord = TRUE;
    	if($model->save())
    		$this->redirect(array('chongzhikaList',));
    	$model->id++;
    }
    }
    $this->render('addchongzhika',array(
    		'model'=>$model,
    ));
    }
    
  • 回复于 2012-08-30 13:07 举报

    谢谢,已经解决了,是因为

    if($model->save())
    $this->redirect(array('chongzhikaList',));
    $model->id++;
    

    这段代码的缘故,执行的时候直接跳走了,就无法执行for循环内的数据了

  • 回复于 2012-08-30 13:25 举报

    真晕~没仔细看......

  • 回复于 2012-08-30 13:36 举报

    你也可以把$model=new Chongzhika;放到循环内部就解决了,在外面所有循环只是用一个实例,所以就只有一条

  • 回复于 2012-08-30 13:39 举报

    嗯,是的,已经解决了,谢谢哈

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