| 제목 | [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 />
|
왜 이런 문제만 보면 호기심이 폭발하는지 ㅠㅠ