用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1334|回复: 0
收起左侧

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

[复制链接]
发表于 2016-1-28 15:24:05 | 显示全部楼层 |阅读模式
CI框架中form_validation中有关differs的介绍:如果表单元素值与参数中对应的表单字段的值相等,返回 FALSE;
然而在实际运用中,我却发现一个问题,不知道问题出在哪里:
首先,在我的表单中有两个标签:
HTML复制代码
 
<td align="center"><strong>原地点</strong></td>
                <td><?php echo $main[0]['pname'] ?></td>
                <td><input type="text" name="oldpid" value="<?php echo $main[0]['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代码如下:

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

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

求大神解答问题何在??



QQ截图20160128150921.png

本版积分规则