所以我的问题是标题中的错误,有我的代码:
jQuery(document).ready(function ($) {
$("#food_search").keyup(function(event){
var search_term =$(this).val();
$.ajax({
type:"POST",
url:"Mypage",
data:{'fsearch':search_term},
success:function(res){
$("#food_search_result").html(res);
console.log(res);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(xhr.responseText);
alert(thrownError);
}
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!----------------------------------------------------------------
HTML
----------------------------------------------------------------->
<form method="post">
<p>Търсене на храни: <input type="text" name="fsearch" id="food_search"></p>
</form>
<!----------------------------------------------------------------
PHP
----------------------------------------------------------------->
<?php
$hostname = "localhost";
$username = "name";
$password = "pass";
$databaseName = "dbname";
$connect = mysqli_connect($hostname, $username, $password, $databaseName);
if(!empty($_POST["fsearch"])) {
$req = $connect->prepare('SELECT * FROM food_data_bg WHERE title LIKE "%".$fsearch."%"');
$req->execute(array(
'title'=>'%'.$_POST['fsearch'].'%'
));
if($req->rowCount()==0){
echo 'Не бяха намерени резултати!';
}
else{
while($data=$req->fetch()){
?>
<div class="search-result">
<img src="<?php echo $data['fimage']; ?>" class="fimage"/>
<span class="result-title"><?php echo $data['title'] ;?></span><br>
<span class="calories-total"><?php echo $data['calories total'] ;?></span><br>
</div>
<?php
}
}
}
?>
该代码用于即时搜索(谷歌喜欢)。$req
变量必须只从数据库获取信息,就像 jquery 通过 ajax 传递给 PHP 的变量search_term,PHP 必须检查是否有与输入字段中写的东西对应的单词或短语。
谢谢!
$fsearch = $connect->real_escape_string($_POST['fsearch']);
$req = $connect->query("SELECT * FROM food_data_bg WHERE title LIKE %{$fsearch}%");
while($row=$req->fetch_array()){
//output function data: $row['title'], $row['calories total'], etc
}
Mysqli 文档
我通过添加一个变量$fsearch并修复我的查询调用来修复它,因为"%".$fsearch。%"'不对,我写了'".$fsearch。%'",正如我所说,添加了这样的 var $fsearch:我尝试过$fsearch = $_POST['fsearch'];
它是否适用于
if($req) {
//code if it return true (if it is working)
}else{
//code if it return false(not working)
}
现在它恢复为真,这意味着查询正在工作,但给了我其他
错误:mysqli_stmt::execute() 期望正好 0 个参数,给定 1
个
好吧,我会问其他问题。感谢您的帮助!