제목 | [html]select -> null 값을 mongodb에 저장하려 합니다 | ||
---|---|---|---|
글쓴이 | 루아루아루 | 작성시각 | 2014/09/23 11:45:50 |
|
|||
국가 이름들이 checkbox 에 있고 checkbox를 클릭하면 value="y"로 줍니다. 체크 안하면 당연히 null 그래서 model파일에 다음과 같이 $row['nation'] = array( "inter" => $post["inter"], "korea" => $post["korea"], "france" => $post["france"], "germany" => $post["germany"], --- 후략 ---- $result = $this->collection->insert( $row, array('safe'=>true) ); 작성하였습니다. 작성완료를 하면 각 checkbox 마다 undefined index 메시지를 띄웁니다. 몽고db에는 제대로 null값이 들어가고 list page에도 글 작성이 제대로 된걸로 뜨는데 왜이러는걸까요;; |
|||
다음글 | 다국어 작업중 궁금증이.. JS파일에 박혀있는 문장은 ... (2) | ||
이전글 | 파일 업로드 관련 질문입니다. (2) | ||
darkninja
/
2014/09/23 12:57:24 /
추천
0
|
루아루아루
/
2014/09/23 14:25:44 /
추천
0
으 결국 해결했습니다
컨트롤러 파일에서 일일히 if(empty($post['나라이름']) { $post['나라이름'] = null} 로 일일히 변환해줬는데 너무 비효율적인거 같네요;; 좀더 자세한 소스를 올리자면... [view 단] - checkbox의 name이름은 일부러 다르게 주었습니다. <form action="option/create" method="post"> <input type="checkbox" name="inter" value="y"> inter <br /> <input type="checkbox" name="korea" value="y"> korea <br /> <input type="checkbox" name="france" value="y"> france <br /> ........... 후략 .......... </form> [controller 단] $post = $this -> input -> post(NULL, TRUE); function create(){ // 이 부분에 if(empty($post['나라이름'])){ $post['나라이름']=null;] 을 삽입 $this -> option_m -> create($post); $referer = "/option/lists"; redirect($referer); } [model 단] function create($post){ $row['nation'] = array ( "inter" => $post["inter"], "korea" => $post["korea"], "france" => $post["france"], ........후략 .......... $result = $this->collection->insert( $row, array('safe'=>true) ); } 원래 소스의 대략적인 부분만 발췌했습니다. |
들국화
/
2014/09/23 14:29:13 /
추천
0
checkbox는 체크하지 않으면 아무것도 안넘어 갑니다.
|
한대승(불의회상)
/
2014/09/23 14:40:29 /
추천
0
이런 비슷한 질문 하셨던 분이 계셨던거 같은데... ^^
저는 이런식으로.. $column_info = array( 'brand_delivery_price_id', // primary_key 'brand_make_info_id', // 업체회워 id 'brand_delivery_id', // 배송정보 id 'shipping_type', // 배송방법 'charging_time', // 과금시점 'deliveryfee', // 배송비 'delivery_extracost', // 추가배송비 'amount_policy', // 수량정책 'price_policy', // 금액정책 'amount_each_policy' // 수량별도정책 ); $post = $chk_column($this->input->post(), $column_info);함수.. function chk_column($pdata, $column_info) { $data = array(); foreach($column_name_info as $key) { isset($pdata[$key]) && $data[$key] = $pdata[$key]; } return $data; } |
루아루아루
/
2014/09/23 15:40:35 /
추천
0
감사합니다 덕분에 코드가 간결해졌네요 ㅎㅎ
|
darkninja
/
2014/09/23 15:50:37 /
추천
0
체크박스를 이렇게 처리하면 여러개를 한칼럼에 묶을수 있겠네요.
감사합니다. 모든 값을 넘기지 않아도 된다면 아래와 같이 할수도 있겠네요. $tm_nation = array(); $input_nation = $this->input->post('nation'); if ($input_nation) { foreach ($input_nation as $nation) { $tm_nation[$nation] = 'y'; } } echo ""; var_dump($tm_nation); echo ""; exit; function create($tm_nation){ $row['nation'] = $tm_nation; $result = $this->collection->insert( $row, array('safe'=>true) ); } <input type="checkbox" name="nation[]" value="inter"> inter <br /> <input type="checkbox" name="nation[]" value="korea"> korea <br /> <input type="checkbox" name="nation[]" value="france"> france <br /> |
왜 이런 문제만 보면 호기심이 폭발하는지 ㅠㅠ