我正在尝试创建一个查询数据库的输入,并返回数据库中是否存在结果。我有部分工作,但只要我输入一个字母,我的盒子就会发出绿光。如果它保持红色直到它实际找到完全匹配然后变为绿色会更好。编辑:我刚刚意识到我的查询也有问题。它现在正确查询数据库。最初的问题是我的主要问题。
$(document).ready(function(){
$("#load").keyup(function (e){
e.preventDefault();
;
searchRequest = $.ajax({
url: 'check_load_no.php',
data: $('#load').serialize(),
type: 'POST',
success: function (data) {
$(".verify").css('box-shadow', '0px 0px 9px 2px #84f850');
$(".error").css('display', 'none');
$(".success").css('display', 'block');
},
error: function (data) {
$(".verify").css('box-shadow', '0px 0px 9px 2px #ad0037');
$(".success").css('display', 'none');
$(".error").css('display', 'block');
}
});
});
});
以下是我的php
<?php include('../model/conn.php'); ?>
<?php include('../model/conn2.php') ?>
<?php
$sql = "SELECT cmt_2 FROM oeordhdr_sql WHERE cmt_2 = '{$_POST['load']}'";
$query = (odbc_exec($conn,$sql));
$row = (odbc_fetch_row($query));
if($row['cmt_2']){
echo 'yeah';
}
HTML
<h1>Please add the info based on your load number</h1>
<form action="" method="post">
<div class="card" >
<input class="verify" id="load" type="text" name="load" placeholder="Load Number" required/>
<span class="error" style="display: none;"><i class="fa fa-exclamation-triangle fa-lg" aria-hidden="true"> </i>I'm not finding anything</span>
<span class="success" style="display: none;"> <i class="fa fa-check-cube fa-lg" aria-hidden="true"> </i> Congratulations, that record exists!</span><br>
<button class="update_button" type="submit" name="add" value="update">Update</button></div></form>
答案 0 :(得分:0)
success: function (data) {
if(data==="yeah")
{
$(".verify").css('box-shadow', '0px 0px 9px 2px #84f850');
$(".error").css('display', 'none');
$(".success").css('display', 'block');
}
else
{
$(".verify").css('box-shadow', '0px 0px 9px 2px #ad0037');
$(".success").css('display', 'none');
$(".error").css('display', 'block');
}
}
检查响应是否是您需要的,然后再添加.success类
答案 1 :(得分:0)
即使&#34;是的,也不会调用您的错误处理程序。 PHP脚本没有回显,因为服务器响应仍然是HTTP 200.因此,您的成功处理程序将始终触发(除非您的服务器/应用程序存在实际问题)。
如果要触发错误处理程序,则必须让服务器发送400或500系列HTTP响应代码(在这种情况下可能为404),以查找未找到匹配项的情况。
或者,您可以将所有逻辑放在成功处理程序中,而不是更改服务器端代码。你只需要测试&#34的价值;是的&#34;是否存在。
您还应该考虑在DOM元素上添加/删除CSS类,而不是在函数中专门指定CSS。如果需要,这将允许您稍后更改CSS,而无需更改此功能。
答案 2 :(得分:0)
决定使用php输出错误/成功消息,而不是更改css
$("#load").keyup(function (e){
e.preventDefault();
searchRequest = $.ajax({
url: 'check_load_no.php',
data: $('#load').serialize(),
type: 'POST',
success: function (data) {
console.log(data);
if(data==="yeah")
{
$(".validate").html(data);
}
else
{
$(".validate").html(data);
}
}
});
});
我的php
$sql = "SELECT cmt_2 FROM oeordhdr_sql WHERE cmt_2 LIKE '{$_POST['load']}'";
$query = odbc_exec($conn,$sql);
$row = (odbc_fetch_row($query));
if($row){
echo '<span class="success" style="display: block;"> <i class="fa fa-check-cube fa-lg" aria-hidden="true"> </i> Congratulations, that record exists!</span>';
}else{
echo'<span class="error" style="display: block;"><i class="fa fa-exclamation-triangle fa-lg" aria-hidden="true"> </i>I\'m not finding anything</span>';
}
我的HTML
<h1>Please add the info based on your load number</h1>
<form action="" method="post">
<div class="card" >
<input class="verify" id="load" type="text" name="load" placeholder="Load Number" required/>
<div class="validate"></div><br>
<button class="update_button" type="submit" name="add" value="update">Update</button></div></form>