前臺資料往後臺傳值,往往是新手最頭痛的,最近在學習thinkPHP的時候,也遇到了這種問題,總結一下,往不足之處請大家指教。
一、前臺介面程式碼,往後臺傳值有兩種方式,一種是get,另一種是post,新手入門,不管什麼方式吧,往後臺傳值成功就可以了。
首先,寫一個from表單,
<form action="{:U(Recom/goodsprice)}" method="post">
<a href="{:U('Recom/goodsprice',array('price'=>'700'))}">價格大於700</a>//在本案例中就已超連結的方式傳值做介紹吧
</form>
這個價格就往後臺傳過去了,傳過去後,也要接受要傳的值,看步驟二,
二、後臺的控制層的程式碼如下:
public function goodsprice(){
$price = I('price');//這就可以獲取前臺傳的price這個值了
print_r("price: ".$price." ");//檢驗一下傳值是否成功,需要執行後開前臺的原始碼是否有這個值
$model = D('Goods');//選擇資料庫中的表了,打個比方吧,就叫goods表吧
$res = $model->selectPrice($price);//關鍵時刻來了,呼叫model層的selectPrice函式,順道把$price這個引數帶過去
$this->assign('res',$res["date"]);//獲取資料,命名為res
$this->assign('page',$res["page"]);//thinkPHP中自帶的一種分頁方式,很簡單,但是需要在model層中進行配置,講解在下面。
$this->display();//這個是顯示介面的
}
三、model層的程式碼如下:
public function selectPrice($price){
$this->db(1,"DB_CONFIG1")->db(1);//選擇資料庫
$map ['price'] = array('gt',$price); //定義查詢條件
$count = $this->db(1,"DB_CONFIG1")->where($map)->count();//統計條數
$page = new \Think\Page($count,10);//分頁處理
$show = $page->show();
$limit = $page->show();
$limit = $page->firstRow.",".$page->listRows;
$goodsprice = $this->db(1,"DB_CONFIG1")->limit($limit)->where($map)->select();//sql語句
print_r($this->getLastSql());//除錯專用,輸出最後一條sql語句
$res["date"] = $goodsprice;
$res["page"] = $show;
return $res;
}
具體的程式碼和步驟就是這麼簡單,對你有沒有幫助啊?