猫薰雲 发表于 2016-1-28 15:24:05

关于表单验证类中规则differs的问题

CI框架中form_validation中有关differs的介绍:如果表单元素值与参数中对应的表单字段的值相等,返回 FALSE;
然而在实际运用中,我却发现一个问题,不知道问题出在哪里:
首先,在我的表单中有两个标签:

<td align="center"><strong>原地点</strong></td>
                <td><?php echo $main['pname'] ?></td>
                <td><input type="text" name="oldpid" value="<?php echo $main['pid'];?>"></td>
            </tr>
            <tr>
                <td align="center"><strong>新地点</strong></td>
                <td><select name="newplace" id="newplace">
                        <?php foreach($place as $p): ?>
                        <option value="<?php echo $p['pid'];?>"><?php echo $p['pname'] ?></option>
                        <?php endforeach; ?>
                  </select>
                </td>

我想做的是判断当【新地点】和【原地点】不相同时触发事件,我的php代码如下:


/**************在config\form_validation.php中的配置如下*************/
'dbsj' => array(
                array(
                  'field'=>'dbsj',
                  'label'=>'调拨时间',
                  'rules'=>'required|exact_length|numeric'
                  ),
                array(
                  'field'=>'newplace',
                  'label'=>'新地点',
                  'rules'=>'differs'
                  )
                );
/****************在代码文件中语句如下***********************/
$this->form_validation->run('dbsj');
if ( $this->input->post('oldpid') == $this->input->post('newplace'))
            {
                echo "相等";
            }
            else
            {
                echo"不相等";
            }


最终发现规则differs总是不触发,而网页的确提示了“相等”;

求大神解答问题何在??



页: [1]
查看完整版本: 关于表单验证类中规则differs的问题