首页新闻找找看学习计划

点击事件调用ajax不成功

0
[待解决问题]

就是写搜索框的模糊搜索,问题是点击搜索后,ajax事件没有调用成功,弹出框也没有显示,求大神找出错在哪里,我实在是找不到了

gcsk.html页面 JS代码

$('#search').click(function(){
  var ziduan = $('.trade-search #bookselect').val();
  var keywords = $('.position #keywords').val();
  console.log(ziduan,keywords);
  $.ajax({
    type: "GET",
    url: "searchsome.php",
    data: "ziduan=" + ziduan + "&keywords=" + keywords,
    dataType:"json",
    success: function(msg){
      alert( "Data Saved: " + msg );
      var nr = '';
      for(var i = 0; i < msg.length; i++){
        nr += '<li><div class="list-left">' + msg[i].bookid + '</div><div           class="list-right"><h4>' + msg[i].bookname + '</h4><p>' +           msg[i].author + '</p><p>' + msg[i].press + '</p><p>' +           msg[i].bookinfo + '</p></div></li>';
      }
      $(".trade-list").html(nr);
    }
  });
})

searchsome.php 代码

<?php
  // 连接数据库
  $conn= mysqli_connect('localhost','root','root','library');
  // 设置传输编码
  mysqli_query($conn,'SET NAMES UTF8');

  if(!empty($_SERVER['HTTP_X_REQUESTED_WITH'])){
    if(!empty($_GET)){
      $ziduan = $_GET['ziduan'];
      $keywords = $_GET['keywords'];
      $sql = "SELECT * FROM `book` WHERE `$ziduan` LIKE           %$keywords%";
      $result = mysqli_query($conn,$sql);
      $book = array();
      while($r = mysqli_fetch_assoc($result)){
        $book[]=$r;
      }
    }
    echo json_encode($book);
    include('gcsk.html');
   }
  else{
    include('gcsk.html');
  }
?>

雨後的彩虹的主页 雨後的彩虹 | 菜鸟二级 | 园豆:202
提问于:2017-05-02 05:20
< >
分享
所有回答(5)
0

在浏览器控制台看一下错误信息

狼爷 | 园豆:1192 (小虾三级) | 2017-05-02 08:58

可是控制台没有报错呀

支持(0) 反对(0) 雨後的彩虹 | 园豆:202 (菜鸟二级) | 2017-05-05 22:21
0

事件绑上了么?进方法里了? F12 断点,看是哪走错了

名字不好起啊 | 园豆:397 (菜鸟二级) | 2017-05-02 10:10

事件绑定了,可以获取到字段和关键字,可就是PHP的数据库的数据没有返回成功

支持(0) 反对(0) 雨後的彩虹 | 园豆:202 (菜鸟二级) | 2017-05-05 22:23

@雨後的彩虹: 打桩,看是前台请求是否发出,参数是否正确,是否有接到后台返回数据,然后再看后台,是否接到前台请求,是否返回了数据,先确定具体问题发生处,再搞清楚为什么会发生,什么导致,这样才能针对性解决,不然连bug原因都不清楚,没法解决呀~

支持(0) 反对(0) 名字不好起啊 | 园豆:397 (菜鸟二级) | 2017-05-08 10:25
0

你还是先确定是前台的问题还是后台的问题! 

console.log(ziduan,keywords);   //ie8是不支持的,在ie8中下面的异步是不会请求的
秋壶冰月 | 园豆:5443 (大侠五级) | 2017-05-02 10:36

用的是谷歌,不是IE

支持(0) 反对(0) 雨後的彩虹 | 园豆:202 (菜鸟二级) | 2017-05-05 21:45
0

你是点击事件有问题 还是你的ajax有问题  你自己试试在 点击事件里加上个alert看看能不能出来

白闹 | 园豆:260 (菜鸟二级) | 2017-05-02 11:09

应该是ajax事件没有获取成功,没有数据返回,所以没有alert出来

支持(0) 反对(0) 雨後的彩虹 | 园豆:202 (菜鸟二级) | 2017-05-05 21:39
0

$.ajax({
    type: "GET",
    url: "searchsome.php",
    data: "ziduan=" + ziduan + "&keywords=" + keywords,
    dataType:"json",
    success: function(msg){...}

})

这里边好多错呀 ,type :post ,data传输的格式是Json格式,可是你给后台的数据是Json格式的数据吗?你通过Url定位到一个php文件,这个文件对应的接收数据的方法是什么?

Bluto | 园豆:317 (菜鸟二级) | 2017-05-02 11:16

我是用get方式获取的数据,然后返回的json格式

这是链接的PHP文件,帮忙看下有木有错

// 连接数据库
$conn= mysqli_connect('localhost','root','root','library');
// 设置传输编码
mysqli_query($conn,'SET NAMES UTF8');

if(!empty($_SERVER['HTTP_X_REQUESTED_WITH'])){
  if(!empty($_GET)){
    $ziduan = $_GET['ziduan'];
    $keywords = $_GET['keywords'];
    $sql = "SELECT * FROM `book` WHERE `$ziduan` LIKE %$keywords%";
    $result = mysqli_query($conn,$sql);
    $book = array();
    while($r = mysqli_fetch_assoc($result)){
      $book[]=$r;
    }
  }
  echo json_encode($book);
}
else{
  include('gcsk.html');
}

支持(0) 反对(0) 雨後的彩虹 | 园豆:202 (菜鸟二级) | 2017-05-05 21:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册