海外旅行から帰ってきたら、まず何を食べる?

現在CakePHPを使用して研修用の受講登録ページを作成しています。
やりたい事としては、

(1)ページ1でデータベースに入っているコース一覧をテーブルに表示
(2)ページ1で各行にチェックボックスがついており、選択したコースのIDを次ページに受け渡しする。
(3)ページ2で受け取ったデータ(コースのID)を元にFindで検索、テーブルに表示する。

といった感じです。
現在(2)まではできているのですが、(3)の部分でうまくいかずに困っています。
現在の状態は、(2)の部分ではチェックボックスの名前をコースのIDと同じ数字にし選択したチェックの数値と、何件選択したかをカウントしたものを変数に入れてFormにて受け渡しています。
そして、(3)で受け取ったデータを元にFindをかけたいのですが、Findの部分でどういった記述をすればいいのかわからず1週間ほど困っています。
グーグルでFindについて検索をしてみたものの、有効な答えを得られなかったので質問させて頂きます。よろしくお願いします。

なお、現在Findの部分は

$conditions = array(
 'conditions' => array(
  'or' => array(

for ($a=0;$a < $kensuu;$a++){
$data = $this->params['form'][$a];
if ($data == 1){
$check = 1;
$count++;
}
if ($check == 1){
$sdata .= array('courceID' => '$a');
$a++;
$data = $this->params['form'][$a];
if ($a == $kensuu){
$sdata .= array('courceID' => '$a');
$count++;
}
$a--;
}
$check = 0;
}
//$conditions = $conditions . $sdata;
//$conditions .= ",),),);";
$sentakudata = $this->Pobs->find('all', $conditions);
$this->set('sentakudata', $sentakudata);

と、途中で止まっています。
選択したデータを

$conditions = array(
 'conditions' => array(
  'or' => array(
array('courceID' => '○○'),
array('courceID' => '○○'),

と、いった感じで自動で条件の部分に追加していきたいのです。

A 回答 (1件)

ろくにCakePHPを使ったことがないですが、


<?php

$conditions = array(
'conditions' => array(
'or' => array(
array('courceID', 'xx'),
array('courceID', 'xx'),
),
),
);

?>
この配列に挿入されるのが目的で、フォームから値の取得は出来ているという前提ですが
まず、<input type="checkbox" name="○○">に指定した、「○○」はどのような値ですか?
それ次第で回答も変わりますが
<input type="checkbox" name="hoge[1]" value="on">
<input type="checkbox" name="hoge[2]" value="on">



<input type="checkbox" name="hoge[10]" value="on">
といった値を挿入したと仮定し、「[]」内の数値がテーブルのidフィールドの値だったとします。
<?php

$checkbox_array = $this->params['form']['hoge'];
//質問の内容から推測するに
//


//とりあえず変数conditionsを初期化
$conditions = array(
'conditions' => array(
'or' => array(),
),
);

foreach($checkbox_array as $key => $check){

$conditions['conditions']['or'][] = array('courceID'=>$key);

}

$sentakudata = $this->Pobs->find('all', $conditions);
$this->set('sentakudata', $sentakudata);

?>

とすれば、いけるのではないでしょうか。
配列に値を追加する場合は、
<?php

array_push($array, $data);
//とするか
$array[] = $data;

?>
とすることが出来ます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報