转换PHP / Mysql / Javascript livesearch并验证输入表单到Codeigniter MVC

时间:2014-11-28 09:50:37

标签: javascript php mysql forms codeigniter

我仍然对Codeigniter MVC感到困惑。我快几天学到的东西: 型号:所有关于数据库。 控制器:用户使用它来连接模型。 视图:用户在使用控制器获取他/她想要的内容时会看到它。

我有平坦的php文件。我用它来搜索,验证和输入。我被迫转换输入表单,所以现在我可以通过CI使用输入表单。但是,我混淆了如何转换搜索和验证部分。我需要输入表单(比方说:id_member)来从Mysql中搜索(实时)。然后,我需要输入表单来验证它是否在Mysql中。如果是,请输入。如果不是,请以相同的形式发出警告(通过javascript,也许?)。

这是我以前的平板php代码,是验证表单(verify.php)的一部分:

if (empty($_POST["id_member"]) || empty($_POST["balance"])){
    echo "<div class='alert alert-danger' role='alert'>Input valid Member ID and balance!!</div>";  
} else {

    if (empty($idcek)) {
    echo "<div class='alert alert-danger' role='alert'> Member ID:'$_POST[id_member]' not in DB. Use Valid Member ID!</div>";
    } else {
        if($cekdep['act']) {
        echo "<div class='alert alert-danger' role='alert'>Input balance for '$_POST[id_member]' = '$bal' already succeed. You can only input balance once for same member and same balance in one day.</div>";
        } else {
            if ($conn->multi_query($sql) === TRUE) {
                echo "<div class='alert alert-success' role='alert'>Balance input success: '$_POST[id_member]' for '$bal'.</div>";
            } else {
                echo "Error: " . $sql . "<br>" . $conn->error;
                }   
        }
    }
}

1 个答案:

答案 0 :(得分:0)

根据您的方法,您想要的是:

if (!$this->validate_id_member($_POST["id_member"])) {
        echo "<div class='alert alert-danger' role='alert'>Invalid Memeber ID</div>";
        return;
    }

这里将是简单的验证函数:

function validate_id_member($id_member){
    $member_data=$this->db->query("select id from tablename where id='$_POST[id_member]' ")->row();
    if(!$member_data){
        return false;
    }
    return true;
}

但我建议你开始使用codeigniter form validation而不是手动操作,一开始可能会更难,但稍后您只需要复制/粘贴早期的验证规则。

我也试图重塑你的条件,以便以后轻松跟进,看起来像这样:

if (empty($_POST["id_member"]) || empty($_POST["balance"])) {
        echo "<div class='alert alert-danger' role='alert'>Input valid Member ID and balance!!</div>";
        return;
    }
    if (empty($idcek)) {
        echo "<div class='alert alert-danger' role='alert'> Member ID:'$_POST[id_member]' not in DB. Use Valid Member ID!</div>";
        return;
    }
    if ($cekdep['act']) {
        echo "<div class='alert alert-danger' role='alert'>Input balance for '$_POST[id_member]' = '$bal' already succeed. You can only input balance once for same member and same balance in one day.</div>";
        return;
    }
    if ($conn -> multi_query($sql) !== TRUE) {
        echo "Error: " . $sql . "<br>" . $conn -> error;
        return;
    }
    echo "<div class='alert alert-success' role='alert'>Balance input success: '$_POST[id_member]' for '$bal'.</div>";