我仍然对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;
}
}
}
}
答案 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>";