繁体   English   中英

提交前获取输入值

[英]getting input value before submit

我想从数据库值中减去输入字段值,如何管理呢? 我需要在MVC中进行哪些更改? 我在myform.ctp中的代码如下:

echo $this->Form->input('discount', array('label' => 'Discount'));

$val1 = //---------here the input value ---------//
$val2 = $this->data['Product']['price'];  //value from database
$val3 = $val2 - $val1;

echo $val3;

编辑后:

<?php
    echo $this->Form->input('discount', array('id'=>'n','label' => 'Discount %','placeholder'=>'Value in %'));

echo $this->Form->hidden('price', array('id'=>'p'));


echo $this->Form->input('finalprice', array('id'=>'c'));

        ?>
            <script>

            var a=document.getElementById('n').value;
             document.write(a); 

            var b=document.getElementById('p').value;
             document.write(b); 

            var c=b-a;
            document.getElementById('c').value=c;
             document.write(c); 

    </script>

现在我正在获取输入值,进行了操作,但是我需要将最终值插入数据库字段中……data ['Product'] ['finalprice'] .........该怎么做?

首先在控制器上设置值

 $this->set('val1',$this->data['Product']['price']);

然后查看

<input type="hidden" value="<?php echo $val1; ?>" id="val1">
 <?php  echo $this->Form->input('discount', array('label' => 'Discount','id'=>'val2')); ?> 



<script>
  $(document).ready(function(){
     var finalval=parseInt($('#val1').val())-parseInt($('#val2').val());
     alert(finalval);
  });  
</script>

在您的Product模型中遵循以下代码wrie,这是cakephp的内置功能

public function beforeSave($options = array()) {
    if (!empty($this->data['Product']['discount']) &&
        !empty($this->data['Product']['price'])
    ) {

     $this->data['Product']['finalprice'] = 
            $this->data['Product']['price'] - $this->data['Product']['discount'];
    }
    return true;
}

beforeSave检查手册中的beforeSave函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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