繁体   English   中英

如何在php提交表单时使用isset输入分配数组多个值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM