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