如果输入文本为空,如何传递零?

How to pass zero if input text is blank?

我的计算有点问题,当我传递折扣和借记值时它正在完成它的工作,但是当折扣和借记值什么都没有时它 returns 一个空白页。这是我的模型.. CODEIGNITER。

function createInvoice() {
    $this->load->helper('date');
    $date = date('Y-m-d H:i:s');
    $data = array(
        'Date'              => $date,
        'Terms_Of_Payment'  => $this->input->post('termsOfPayment'),
        'Sub_Total'         => $this->input->post('subTotal'),
        'Total'             => $this->input->post('total') - $this->input->post('discount'),
        'Discount'          => $this->input->post('discount'),
        'Debit'             => $this->input->post('debit'),
        'Payment_Cridet'    => $this->input->post('total') - $this->input->post('debit') - $this->input->post('discount'),
        'Note'              => $this->input->post('note'),
        'Customer_ID'       => $this->input->post('customerId'),
        'User_ID'           => $this->session->userdata('id'));

    $this->db->insert('invoice', $data);
    return ($this->db->affected_rows() != 1) ? false : true;
}

在分配借方值时在数据数组中使用三元运算符,discount.Code 如下所示:

function createInvoice() {
$this->load->helper('date');
$date = date('Y-m-d H:i:s');
$data = array(
    'Date'              => $date,
    'Terms_Of_Payment'  => $this->input->post('termsOfPayment'),
    'Sub_Total'         => $this->input->post('subTotal'),
    'Total'             => $this->input->post('total') - isset($this->input->post('discount'))?$this->input->post('discount'):0,
    'Discount'          => isset($this->input->post('discount'))?$this->input->post('discount'):0',
    'Debit'             => isset($this->input->post('debit'))?$this->input->post('debit'):0,
    'Payment_Cridet'    => $this->input->post('total') - isset($this->input->post('debit'))?$this->input->post('debit'):0 - isset($this->input->post('discount'))?$this->input->post('discount'):0',
    'Note'              => $this->input->post('note'),
    'Customer_ID'       => $this->input->post('customerId'),
    'User_ID'           => $this->session->userdata('id'));

$this->db->insert('invoice', $data);
return ($this->db->affected_rows() != 1) ? false : true;

}

三元运算符逻辑是使用 (condition) ? (true return value) : (false return value) 语句来缩短 if/else 结构的过程。

因此,如果输入文本为空,您可以使用三元运算符登录来传递零。

现在,您的 createInvoice() 函数有一些变化,就像我一样:

$subTotal       =   $this->input->post('subTotal') == "" ? 0 : $this->input->post('subTotal');
$total          =   $this->input->post('total') == "" ? 0 : $this->input->post('total');
$discount       =   $this->input->post('discount') == "" ? 0 : $this->input->post('discount');
$debit          =   $this->input->post('debit') == "" ? 0 : $this->input->post('debit');

$data = array(
    'Date'              => $date,
    'Terms_Of_Payment'  => $this->input->post('termsOfPayment'),
    'Sub_Total'         => $subTotal,
    'Total'             => ($total - $discount),
    'Discount'          => $discount,
    'Debit'             => $debit,
    'Payment_Cridet'    => $total - $debit - $discount,
    'Note'              => $this->input->post('note'),
    'Customer_ID'       => $this->input->post('customerId'),
    'User_ID'           => $this->session->userdata('id')
);

最好的方法是使用三元运算符。

$subtotal = $this->input->post('subTotal') == "" ? 0 : $this->input->post('subTotal');

如果您的 php 版本是 7.0> 则使用

$subtotal = $this->input->post('subTotal') ?? 0;