【发布时间】:2018-08-17 23:59:47
【问题描述】:
我目前正在通过我的学校学习 javascript,我完全坚持尝试使搜索表单工作。
我遇到的问题是我无法让它显示来自 sql 查询的所有结果。
代码如下所示:
$(document).ready(function(){
var searchfield = document.getElementById("searchfield");
var searchresult = document.getElementById("searchresult");
$(searchfield).on("keyup", function(){
var q = this.value;
console.log(q +"'This value'");
var str = "";
var url = "searchscript.php?q="+q;
$.ajax({
url:url,
type:'post',
dataType: 'json',
success: function(resultat){
console.log("resultatet är:" + resultat.ProduktNamn);
for(var i = 0; i < resultat.ProduktNamn.length; i++) {
str += resultat.ProduktNamn + "<br>";
}
searchresult.innerHTML = str;
}
})
});
});
<?php
$str = $_GET['q'];
if (!empty($str)) {
$query = "SELECT ProduktNamn FROM Produkter WHERE ProduktNamn LIKE '%$str%'";
$resultat = mysqli_query($dbconnect, $query);
while ($row = $resultat->fetch_assoc()) {
echo json_encode($row);
}
}
?>
只要查询的结果有超过 1 个属性,无论我怎么做,它都不会显示任何结果,只有当我缩小搜索范围以找到一个产品时,它才会显示它。
我是 javascript 新手,但我很确定这与我在 PHP 端执行此操作的方式有关,因此它将每个产品作为单个对象返回,而不是在数组或任何东西,所以当我在 javascript 端取回数据时,我无法循环遍历它。
所以基本上,假设我有这些产品
“香蕉奇基塔” 《香蕉奇奇》 “香蕉”
一旦我在搜索字段中至少写了“Banana chiq”,我只会在 javascript 端得到结果,因此 php 端只返回 1 个对象。
对不起,我糟糕的解释:/
【问题讨论】:
-
另一个例子:我去 searchscript.php?q=ba 它返回: {"ProduktNamn":"Banan Chiquita"}{"ProduktNamn":"Banan Lokal"} 这是所有产品里面有“ba”
标签: javascript php arrays json ajax