javascript - 动态ajax下拉菜单不起作用

标签 javascript php jquery ajax

我正在尝试使通知选项卡正常工作,但似乎不太正确。下拉菜单工作正常,但对 newfriends.php 的 ajax 调用无法正常工作,当使用 firebug 查看时,下拉菜单中看不到任何结果。相当困惑。 (请注意,下拉菜单位于标题中,只有在 session 初始化时才能显示) 这是jquery中使用的ajax:

function load_notifications(view=''){
   $.ajax({
       url: "notification/new_friends.php",
       method: "POST",
       data:{view:"view"},
       dataType:"json",
       success: function(data){

           $(".dropdown-menu").html(data.notification);
if(data.unseen_notification>0){
    $(".badge1").html(data.unseen_notification);
}
    }

   });
        //$(".dynamic-notification").load("notification/pm_n.php");
   // $(".dynamic-notification-f").load("notification/new_friends.php");
};
load_notifications();
$(document).on("click",".count_friend", function(){
    load_notifications('yes');
});
//loads every 2 seconds for chat
setInterval(function(){load_notifications();},2000);

这是 new_friends.php 内容:

<?php
include '../includes/dbconfig.inc.php';

if (isset($_POST['view'])) {

if($_POST['view'] !=''){
    $update="update friends set count='1' where friend_one=:session and count='0'";
    $stmt=$conn->prepare($update);
    $stmt->bindValue(":session", $_SESSION['uname']);
    $stmt->execute();
}
$sql123="select id from friends where friend_two=:sess_uname and count='0'";
    $stmt123=$conn->prepare($sql123);
    $stmt123->bindValue(":sess_uname", $_SESSION['uname']);
    $stmt123->execute();
    $request_count=$stmt123->fetchColumn();
    //$count_friend=$stmt123->rowCount();
    /*$sql_f_count="select *from user where user_id=:session_id and activated='1' limit 1";
    $stmt_f_count=$conn->prepare($sql_f_count);
    $stmt_f_count->bindValue(":session_id", $_SESSION['id']);
    $stmt_f_count->execute();
    $user_details=$stmt_f_count->fetchAll();
    $friend_badge=$user_details[0]['friend_count_badge'];*/
    require "notification/friend_request_notification.php";
// $new_friends="<span class='dropdown'><a href='#' data-placement='bottom' class='btn dropdown-toggle' data-toggle='dropdown' title='Friend Requests' data-html='true'><span class='count_friend' style=' height:33px; width:30px;'><span class='badge1 label label-pill'>".$count."</span><img src='img/logo/group-button-white.png' style='height:25px; width:27px;' alt='new_friends_alert'></span></a><ul class='dropdown-menu'></ul></span>";    
//if($request_count[0]>0){
    //$new_friends="<a href='#' data-placement='bottom' class='btn' data-trigger='focus' title='Friend Requests' data-toggle='popover' data-html='true' data-content='".$friend_requests."'><span class='count_friend' style=' height:33px; width:30px;'><img src='img/logo/group-button-white.png' style='height:25px; width:27px;' alt='new_friends_alert'></span><span class='badge'>".$friend_badge."</span></a>";
    /*}else{
     $new_friends="<a href='all_notifications.php'><img src='img/logo/group-button-black.png' style='height:25px; width:27px;' alt='new_friends_alert'></a>";   
    }*/
//echo $new_friends;
//}
    $data=array(
        'notification'=>$friend_requests,
        'unseen_notification' =>$request_count[0][0]
    );
}
echo json_encode($data);

以及好友请求输出的代码:

<?php
//error_reporting(0);
require_once 'includes/dbconfig.inc.php';
$sql = "select * from friends where friend_two=:session and accepted='0' order by friends_date_made asc";
$stmt = $conn->prepare($sql);
$stmt->bindparam(":session", $_SESSION['uname']);
$stmt->execute();
$numrows = $stmt->fetchAll(PDO::FETCH_ASSOC);
$friend_requests="";
if ($numrows < 1) {
    $friend_requests = "You do not have any friend requests";
    echo "$friend_requests";
    exit();
} else {
    foreach ($numrows as $i=>$row1 ) {
        $reqid = $row1['friend_id'];
        $user1 = $row1['friend_one'];
        $datemade = $row1['friends_date_made'];
        $datemade1 = strftime("%B %d, %y", strtotime($datemade));
        $sql = "SELECT * FROM user WHERE uname=:user1 LIMIT 1";
        $stmt = $conn->prepare($sql);
        $stmt->bindparam(":user1", $user1);
        $stmt->execute();
        $thumbrow = $stmt->fetchAll(PDO::FETCH_ASSOC);
        $user1avatar = $thumbrow[$i]['avatar'];
        $user1id=$thumbrow[$i]['user_id'];

        if ($user1avatar =="") {
            $user1pic = '<img src="img/avatardefault.png" height="50" style="float:left;" width="50" alt="'.$user1.'" class="user_pic">';
        }  else {
         $user1pic = '<img src="../user/user/'.$user1id.'/'.$user1avatar.'" height="50" style="float:left;" width="50" alt="'.$user1.'" class="user_pic">';

        }
        $friend_requests .= '<li><div id="'.$reqid.'" float="right" class="friendrequests">
        <a href="home.php?u='.$user1.'">'. $user1pic .'</a>
                <div class="user_info '.$reqid.'" id="'.$reqid.'"><small>' . $datemade1 . '</small>
                 <a href="home.php?u='.$user1.'">'.$user1.'</a> is requesting your friendship<br /><br />
        <button id="'.$reqid.'" name="'.$_SESSION['uname'].'" sess="'.$_SESSION['id'].'" class="accept_btn btn btn-warning">Accept</button><span class="show-spinner"></span> or
        <button id="'.$reqid.'" name="'.$_SESSION['uname'].'" sess="'.$_SESSION['id'].'" class="reject_btn btn btn-warning">Reject</button>
        </div>
        </div><hr></li>';


     }

}

最佳答案

您当前拥有数据:{view:"view"}。 这意味着您正在请求正文中传递字符串 'view'

将其更改为:

function load_notifications(thisview=''){
   var theData = {
      view: thisview
   }
   $.ajax({
       url: "notification/new_friends.php",
       method: "POST",
       data: theData,
       dataType:"json",
       success: function(data){

关于javascript - 动态ajax下拉菜单不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42745044/

相关文章:

jquery - jQuery has() 和 filter() 方法有什么区别?

php - 使用php下载文件并将其保存到数据库

php - 在 MySql 中存储日期和时间

php - PHP、MySQL 登录错误

java - 如何在struts set标签中获取随机值

javascript - jQuery Ajax - 如何错误地获取响应数据

javascript - Google map 中的淡入圆圈

javascript - 如何在 Rails Controller 中使用 Google Analytics 自定义事件?

javascript - 印地语字体 slug 转换

javascript - 如何在 Visual Studio 2010/2012 中将自定义文件扩展名注册到 JavaScript 编辑器?