在我的网站上,我有一个不同测量单位的下拉列表。一个人可以填写他的剂量,然后选择一个单位,然后提交表格。在我的单位表中,我还有一个转换字段
units
id | unit | conversion
1 | g | 1000
我想传递与选择保管箱字段相关联的转换值,这样在我的控制器中,在我保存之前,我可以将我的'剂量'与转换值相乘。问题是我不知道如何实际“获得”转换价值。我尝试运行find()来选择与单位id匹配的值,但似乎我的发现甚至没有返回任何结果。看起来像这样
$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'];
答案 0 :(得分:1)
这种转换最好在php中完成。
从db表中填充你的单位下拉列表:table_id SERIAL,单位CHAR(5),转换(FLOAT)然后你可以这样做:
$u=mysqli_real_escape_string($mysqlidb,$_POST['unit'])
SELECT conversion from unittable WHERE unit ='$u';
如果这个系统用于医疗目的,我真的不建议你这样做。您应该使用经过批准的数据库,其中包含预先连接的药物名称,剂量和形式,否则肯定会出现错误。
有许多合适的数据库可用,或者您可以随时创建自己的数据库。