在我的网站上,我有一个不同的测量单位下拉。一个人可以填写他的剂量,然后选择一个单位,然后提交表格。在我的单位表中,我也有一个转换字段
units
id | unit | conversion
1 | g | 1000
我想传递与select dropbox字段相关联的转换值,以便在我的控制器中,就在我保存之前,我可以将我的"剂量"与转换值相乘。问题是我不知道如何真正"获得"转换值。我尝试运行find()来选择与单位id匹配的值,但似乎我的find甚至没有返回任何结果。它看起来像这样
$this->Unit->find('first',
array(
'conditions' => array(
'unit' => $this->request->data['RecordDrugUnit']['unit_id']),
'fields' => array('conversion')
));
我然后做
$this->request->data['RecordDrugUnit']['dose'] = (int)$this->request->data['RecordDrugUnit']['dose'] * (int)$this->request->data['Unit']['conversion'];
发现
$conv_val = $this->Unit->find('first',
array(
'conditions' => array(
'id' => $this->request->data['RecordDrugUnit']['unit_id']),
'fields' => array('conversion')
));
$this->request->data['RecordDrugUnit']['dose'] = (int)$this->request->data['RecordDrugUnit']['dose'] * (int)$conv_val['Unit']['conversion'];
这种转换最好在php中完成。
填写你的单位下拉列表从数据库表vis: table_id SERIAL,单位CHAR(5),转换(FLOAT),然后你可以做:
$u=mysqli_real_escape_string($mysqlidb,$_POST['unit'])
SELECT conversion from unittable WHERE unit ='$u';
如果这个系统是用于医疗目的,我真的不建议你这样做。您应该使用预先连接的包含药品名称、剂量和表格的批准数据库,否则肯定会出错。
有许多合适的dbs可用,或者您也可以创建自己的dbs。