我需要通过下拉列表传递三个值

时间:2013-06-20 22:59:16

标签: php cakephp

在我的网站上,我有一个不同测量单位的下拉列表。一个人可以填写他的剂量,然后选择一个单位,然后提交表格。在我的单位表中,我还有一个转换字段

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'];

1 个答案:

答案 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';

如果这个系统用于医疗目的,我真的不建议你这样做。您应该使用经过批准的数据库,其中包含预先连接的药物名称,剂量和形式,否则肯定会出现错误。

有许多合适的数据库可用,或者您可以随时创建自己的数据库。