2017-01-19 8 views
0

isset()の後にフォームに値をサブミットしても、最後にisset()という値が配列に格納されています。配列のnull値でない値をすべてinsert関数に渡す正しい方法は何ですか?配列の複数の値をフォームのサブミットで入力する方法

$table = 'booking'; 
if(isset($_POST['tourID'])){ 
    $data = array('tour_fk' => $this->input->post('tourID')); 
} 
if(isset($_POST['bookingNumber'])){ 
    $data = array('booking_number' => $this->input->post('bookingNumber')); 
} 
$query = $this->dashboard_model->insert($table, $data); 

答えて

1

正しい方法は、それを再割り当てするのではなく、$dataに新しいキーを追加することです:

if (isset($_POST['tourID'])){ 
    $data['tour_fk'] = $this->input->post('tourID'); 
} 
if (isset($_POST['bookingNumber'])){ 
    $data['booking_number'] = $this->input->post('bookingNumber'); 
} 
+0

あなたは右の先生です。出来た。本当に感謝 – Faisal

1

あなたはvalues.Notを持つすべてのnullでないキーの配列を記述する必要がthis.Makeのように達成することができます投稿された項目ごとにisset()。ちょうどforeachループを使用してください。あなたの結果を達成してください。ここで

$table = 'booking'; 
foreach($_POST as $key=>$value) { 
    if(isset($_POST[$key])) { 
     $data[$key]=$this->input->post($key); 
    } 
} 
//print_r($data); 

はあなたのための一例..です

$array = array('tour_fk'=>1,'booking_number'=>11,'empty_field'=>NULL); 
foreach($array as $key=>$value) { 
    if(isset($array[$key])) { 
     $data[$key]=$value; 
    } 
} 
    print_r($data); 

出力:

Array ([tour_fk] => 1 [booking_number] => 11)//without null values 
関連する問題