[英]How to assign array multiple values with isset input on form submition in php
我正在尝试让表单在isset()
之后在数组中提交值,但它仅在数组中存储最后一个isset()
值。 什么是使数组中所有非空值传递给插入函数的正确方法。
$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);
正确的方法是向$data
添加新密钥,而不是重新分配它:
if (isset($_POST['tourID'])){
$data['tour_fk'] = $this->input->post('tourID');
}
if (isset($_POST['bookingNumber'])){
$data['booking_number'] = $this->input->post('bookingNumber');
}
你可以这样实现:用值组成所有非空键的数组。不需要为每个发布的项目编写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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.