jquery+ajax+php实现搜索功能 一直实现不了求修改
jquery+ajax+php实现搜索功能,一直实现不了,下面是在帝国CMS中的应用<htmllang="en"><divclass="container"><div><...
jquery+ajax+php实现搜索功能,一直实现不了,下面是在帝国CMS中的应用
<html lang="en">
<div class="container">
<div><input type="text" id="gover_search_key" placeholder="请输入内容进行搜索"/>
<button type="submit" onclick="search()">搜索</button>
</div>
<div id="container" class="rows">
</div></div>
<script type="text/javascript">
function search(){
var keyword=$("#gover_search_key").val();
$.ajax({
type:"GET",
url:'search.php',
dataType:"json",
data:{'keyword':keyword},
success: function (data) {
//alert("test");
var html='';
var title=eval(data)[0];
inum=eval(data)[4][0];
for(i=0;i<inum;i++){
html = html+'<div class="col-md-3 text-center"><p>'+eval(data)[0][i]+'</p></div>';
}
$("#container").html(html);
}
}
)
}
</script>
</html>
<?php
header('Content-type:text/json; charset=utf-8');
require('../class/connect.php');
require('../class/db_sql.php');
$keyword=$_GET['keyword'];
$result1="select count(*) from phome_ecms_news where title like '%".$keyword."%'";
$row1 = mysqli_fetch_array($result1);
$allnum=$row1[0];
//echo $allnum;
$result="select * from phome_ecms_news where title like '%".$keyword."%'";//对表picture进行选择
$rownum = mysqli_num_rows($result);//获取result的数据数量
$picture=array(array());
for($i=0;$i<$rownum;$i++){
$row = mysqli_fetch_assoc($result);//获取result的一条数据
$picture[0][$i]= $row['title'];//获得文字描述
$picture[1][$i]= $row['id'];//获得id
}
$picture[2][0]=$allnum;
echo json_encode($picture);
?> 展开
<html lang="en">
<div class="container">
<div><input type="text" id="gover_search_key" placeholder="请输入内容进行搜索"/>
<button type="submit" onclick="search()">搜索</button>
</div>
<div id="container" class="rows">
</div></div>
<script type="text/javascript">
function search(){
var keyword=$("#gover_search_key").val();
$.ajax({
type:"GET",
url:'search.php',
dataType:"json",
data:{'keyword':keyword},
success: function (data) {
//alert("test");
var html='';
var title=eval(data)[0];
inum=eval(data)[4][0];
for(i=0;i<inum;i++){
html = html+'<div class="col-md-3 text-center"><p>'+eval(data)[0][i]+'</p></div>';
}
$("#container").html(html);
}
}
)
}
</script>
</html>
<?php
header('Content-type:text/json; charset=utf-8');
require('../class/connect.php');
require('../class/db_sql.php');
$keyword=$_GET['keyword'];
$result1="select count(*) from phome_ecms_news where title like '%".$keyword."%'";
$row1 = mysqli_fetch_array($result1);
$allnum=$row1[0];
//echo $allnum;
$result="select * from phome_ecms_news where title like '%".$keyword."%'";//对表picture进行选择
$rownum = mysqli_num_rows($result);//获取result的数据数量
$picture=array(array());
for($i=0;$i<$rownum;$i++){
$row = mysqli_fetch_assoc($result);//获取result的一条数据
$picture[0][$i]= $row['title'];//获得文字描述
$picture[1][$i]= $row['id'];//获得id
}
$picture[2][0]=$allnum;
echo json_encode($picture);
?> 展开
1个回答
展开全部
先不说代码写的如何,就说目前存在的几个问题:
1:js代码中,已经指定dataType:"json"所以返回的就是JS对象,后面调用的时候就不用eval了,直接用data[0][i],这样就可以了
2:根据php代码来看,data[0]是标题,data[1]是ID,data[2]才是数量,所以JS代码中的inum=eval(data)[4][0]; 应该改成inum=data[2];
3:php代码,你是用的mysqli操作数据库,应该先学习一样相关的教程,
$row1 = mysqli_fetch_array($result1); 和$rownum = mysqli_num_rows($result);中的参数不是sql字符串,而是mysqli_query()等返回的结果集标识符,所以在这两句代码之前再加一行
$sql="SQL语句";
$result1 = mysqli_query($connect, $sql);
$row1 = mysqli_fetch_array($result1);
$connect是连接数据库,例如
$connect = mysqli_connect('localhost','root','','baidu') or die('Unale to connect');
追问
不行,按照你说的修改还是不行啊
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询