thinkphp について質問したいのですが:
問題は次のように説明されています:
ページからパラメーター ID を渡し、その ID 値をデータベースに書き込む必要がありますが、そのプロセス中にパラメーターが設定されていることがわかりました。送信時に値を null にすると、データベースだけでなく挿入も行われます。
$viewpoint_id で取得した値は空です
コードは次のとおりです:
public function food_add() { $Food=M('Food'); $FoodType=M("FoodType"); if (isset($_POST['save'])) { //判断是否已经添加了菜品 $viewpoint_id= $_GET['id']; $id=$_POST['names']; $this->food_add2($id,$viewpoint_id); } else { // 显示数据 $lists = $Food->field("food.name,food.food_type,food.price,food.id,manager.path") ->table($Food->getTableName()." food") ->join(M("file_manager")->getTableName()." manager on food.pic = manager.id") ->page($page)->order('food.id desc')->select(); foreach ($lists as $k => $v) { $lists[$k]['path'] = __ROOT__.$lists[$k]['path']; $lists[$k]['type_name'] = $FoodType->where("id={$v['food_type']}")->getField('type_name'); } $this->assign('lists', $lists); $this->display('food_add'); } }public function food_add2($id,$vid){ $Food=M('Food'); $FoodType=M("FoodType"); $FoodDinner=M('ViewpointDinner'); //获取FOODID $food_id= implode(',' ,$_POST['names']); $food_detail=$Food->where(array('id'=>array('in',$food_id)))->select(); $FoodDinner->create(); foreach ($food_detail as $k => $v) { $FoodDinner->id = $food_detail[$k]['id']; $FoodDinner->type = $food_detail[$k]['food_type']; $FoodDinner->names = $food_detail[$k]['name']; $FoodDinner->price = $food_detail[$k]['price']; $FoodDinner->pic = $food_detail[$k]['pic']; $FoodDinner->create_time = strtotime(date('Y-m-d H:i:s')); $FoodDinner->sort=1; //排序 $FoodDinner->is_low=1; //低消 $FoodDinner->viewpoint_id=$vid; $FoodDinner->add(); } }
//判断是否已经添加了菜品 $viewpoint_id= $_GET['id']; $id=$_POST['names'];
投稿方法は何ですか?
POST?
@namelesswei @shengli881026 2 つの返信ありがとうございます。$_GET['id'] は他のページから渡されたパラメータを取得するためのものです。パラメータを渡すリンクは次のとおりです。 $_POST[' save'] と $_GET['id'] は 2 つの異なるソースに属しているため、これら 2 つの値は同時に存在することはできません
フォームには action 属性があり、ID を書き込むことができます
@ xuzuning ありがとうございます あなたの返信で私の問題は解決しました。 @namelesswei @shengli881026 さんにも返信いただきありがとうございます。