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


I need to pass three values with a dropdown

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

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。