Codeigniter - 根据用户输入进行验证并检查数据是否存在于两个表中
Codeiginiter - Validate from user input and check if data exist in two tables
解释如下:
我有一个用于参与者 ID 的文本框,当用户进行输入时,它将检查 registered_user table,如果用户是已经注册,它会做第二次验证,检查用户是否做过测试,通过检查 tpa_test table.
用户测试后,数据将存储在tpa_testtable.
我可以使用以下代码检查 registered_user 上是否存在参与者 ID:
Models
public function get_refid($refid)
{
$sql = $this->db->query("SELECT * FROM registered_user where refid='$refid'");
$this->db->limit(1);
$cek_refid = $sql->num_rows();
if ($cek_refid > 0) {
return false;
}
return true;
}
Controller
function get_refid_exist() {
if (isset($_POST['refid'])) {
$refid = $_POST['refid'];
//print_r($refid);die;
$results = $this->M_Ujian->get_refid($refid);
print_r($results);
if ($results === TRUE) {
echo '<div class="alert alert-danger" role="alert">ID Peserta salah atau tidak terdaftar</div>';
} else {
echo '<div class="alert alert-success" role="alert"><strong>ID Peserta ditemukan!</strong> Silahkan klik tombol selanjutnya.</div>';
}
} else {
echo '<div class="alert alert-danger" role="alert">ID Peserta wajib diisi.</div>';
}
}
And this is my Ajax
$.ajax({
type: "POST",
url: "<?=base_url()?>Ujian/get_refid_exist".replace("http://", "https://"),
data: $("#typingtestForm").serialize(),
dataType: "html",
cache: false,
success: function (msg) {
$('#msg').show();
$("#msg").html(msg);
if ($('#msg').text() == "ID Peserta ditemukan! Silahkan klik tombol selanjutnya.") {
cekcookie();
$('.sw-btn-next').prop("disabled", false);
} else {
$('.sw-btn-next').prop("disabled", true);
}
},
error: function (jqXHR, textStatus, errorThrown) {
$('#msg').show();
$("#msg").html("<div class=\"alert alert-secondary\" role=\"alert\">" + textStatus + " " + errorThrown + "<\div>");
}
});
那么如何验证两个 table 中的值?
如果值在tableregistered_user而不在tabletpa_test,结果为真,
如果值在tableregistered_user并且在tabletpa_test 结果为假,
并且如果该值不在 tables registered_user 和 tpa_test 中,则结果为假,
谢谢!
需要编写模型函数如下。 returns只有满足你的条件才为真。
public function get_refid($refid)
{
$sql = $this->db->query("SELECT * FROM registered_user where refid='$refid'");
$this->db->limit(1);
$cek_refid = $sql->num_rows();
$sql1 = $this->db->query("SELECT * FROM tpa_test where refid='$refid'");
$this->db->limit(1);
$cek_refid1 = $sql1->num_rows();
if ($cek_refid > 0 && $cek_refid1 == 0 ) {
return true;
}
return false;
}
解释如下:
我有一个用于参与者 ID 的文本框,当用户进行输入时,它将检查 registered_user table,如果用户是已经注册,它会做第二次验证,检查用户是否做过测试,通过检查 tpa_test table.
用户测试后,数据将存储在tpa_testtable.
我可以使用以下代码检查 registered_user 上是否存在参与者 ID:
Models
public function get_refid($refid)
{
$sql = $this->db->query("SELECT * FROM registered_user where refid='$refid'");
$this->db->limit(1);
$cek_refid = $sql->num_rows();
if ($cek_refid > 0) {
return false;
}
return true;
}
Controller
function get_refid_exist() {
if (isset($_POST['refid'])) {
$refid = $_POST['refid'];
//print_r($refid);die;
$results = $this->M_Ujian->get_refid($refid);
print_r($results);
if ($results === TRUE) {
echo '<div class="alert alert-danger" role="alert">ID Peserta salah atau tidak terdaftar</div>';
} else {
echo '<div class="alert alert-success" role="alert"><strong>ID Peserta ditemukan!</strong> Silahkan klik tombol selanjutnya.</div>';
}
} else {
echo '<div class="alert alert-danger" role="alert">ID Peserta wajib diisi.</div>';
}
}
And this is my Ajax
$.ajax({
type: "POST",
url: "<?=base_url()?>Ujian/get_refid_exist".replace("http://", "https://"),
data: $("#typingtestForm").serialize(),
dataType: "html",
cache: false,
success: function (msg) {
$('#msg').show();
$("#msg").html(msg);
if ($('#msg').text() == "ID Peserta ditemukan! Silahkan klik tombol selanjutnya.") {
cekcookie();
$('.sw-btn-next').prop("disabled", false);
} else {
$('.sw-btn-next').prop("disabled", true);
}
},
error: function (jqXHR, textStatus, errorThrown) {
$('#msg').show();
$("#msg").html("<div class=\"alert alert-secondary\" role=\"alert\">" + textStatus + " " + errorThrown + "<\div>");
}
});
那么如何验证两个 table 中的值?
如果值在tableregistered_user而不在tabletpa_test,结果为真,
如果值在tableregistered_user并且在tabletpa_test 结果为假,
并且如果该值不在 tables registered_user 和 tpa_test 中,则结果为假,
谢谢!
需要编写模型函数如下。 returns只有满足你的条件才为真。
public function get_refid($refid)
{
$sql = $this->db->query("SELECT * FROM registered_user where refid='$refid'");
$this->db->limit(1);
$cek_refid = $sql->num_rows();
$sql1 = $this->db->query("SELECT * FROM tpa_test where refid='$refid'");
$this->db->limit(1);
$cek_refid1 = $sql1->num_rows();
if ($cek_refid > 0 && $cek_refid1 == 0 ) {
return true;
}
return false;
}