【发布时间】:2016-07-08 15:03:15
【问题描述】:
我正在尝试创建一个查询数据库并返回结果是否存在于数据库中的输入。我让它部分工作,但只要我只输入一个字母,我的盒子就会发出绿光。如果它一直保持红色,直到它真正找到完全匹配然后变成绿色,那会更好。编辑:我刚刚意识到我的查询也有问题。它现在正在正确查询数据库。原来的问题是我的主要问题。
$(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>
【问题讨论】:
-
也许只有在输入了至少 2-3 个字符的情况下才运行查询?
-
注意:出于安全原因,在
odbc_exec()之前使用odbc_prepare()- 阅读 - php.net/manual/en/function.odbc-prepare.php -
我的印象是odbc_exec()准备和执行?php.net/manual/en/function.odbc-exec.php还有一个odbc_execute需要你先准备。
-
这很容易受到 SQL 注入的影响,因为您将用户输入连接到 SQL 中。您应该改用参数化的预处理语句。
-
@MikeBrant 示例?
标签: php jquery ajax sql-server-2008 ajaxform