【硬上PHP】修改商品信息

这几天,工作比较闲,做一下学习php的笔记。


就上关键部分代码咯,自带注释,

首先是修改按钮。制作超链接跳转




href="{:U('update',array('goods_id'=>$v['goods_id']))}" >修改

此处有两种写法,一种是常亮路径__CONTROLLER__,一种是使用U函数。

推荐使用U函数。

U方法用于完成对URL地址的组装,特点在于可以自动根据当前的URL模式和设置生成对应的URL地址,格式为:

U('地址','参数','伪静态','是否跳转','显示域名');

在模板中使用U方法而不是固定写死URL地址的好处在于,一旦你的环境变化或者参数设置改变,你不需要更改模板中的任何代码。

在模板中的调用格式需要采用 {:U('地址', '参数'…)} 的方式


U方法的第二个参数支持传入参数,支持数组和字符串两种定义方式,如果只是字符串方式的参数可以在第一个参数中定义,下面几种方式都是等效的:

U('Blog/cate',array('cate_id'=>1,'status'=>1))
U('Blog/cate','cate_id=1&status=1')
U('Blog/cate?cate_id=1&status=1')


搞完跳转链接之后,我们需要到URL对应的Controller进行接收数据,因为我们在跳转的时候传递了商品ID嘛,嘿嘿。

$goods_id = I('get.goods_id'); //接收被修改商品的goods_id
$info = $goods->find($goods_id);//查询被修改商品的信息
$this->assign('info', $info);
$this->display();

然后在html布局里面将数据添加到表单里面。

type="hidden" name='goods_id' value="{$info.goods_id}"/>
border="1" width="100%" class="table_a" id="general-tab-tb">
                                                                        
商品名称 type="text" name="goods_name" value="{$info.goods_name}"/>
商品价格 type="text" name="goods_price" value="{$info.goods_price}"/>
商品logo图片 type="file" name="goods_logo"/>
border="1" width="100%" class="table_a" id="detail-tab-tb" style="display:none;" >
商品详细描述

数据正常展示后,修改数据并提交。然后在Controller写两个逻辑判断提交的数据类型,一个展示,一个修改判断。

public function update()
{
    $goods = new GoodsModel();
    if (IS_POST) {
        $data = $goods->create();
        if ($goods->save($data))
            $this->success('修改商品成功', U('show'), 2);
        else
            $this->error('修改商品失败', U('update', array('goods_id' => $data['goods_id'])), 2);
    } else {
        $goods_id = I('get.goods_id'); //接收被修改商品的goods_id
        $info = $goods->find($goods_id);//查询被修改商品的信息
        $this->assign('info', $info);
        $this->display();
    }
}


你可能感兴趣的:(php)