PHP没有回应来自AJAX

时间:2017-11-19 21:49:46

标签: php jquery ajax

index.js

$(document).on("click", ".player", function(){
  var id = $(this).attr("id");
  var values = $(id).serialize();
  $.post('./connections/lobby.class.php', { data: values }, function(data) {
    alert(id);
    });
});

lobby.class.php

public function userPublicInfo()
    {
        $stmt = $this->db->prepare("SELECT * FROM account WHERE id='$this->id'");
        $stmt->execute();
        $rows = $stmt->fetch(PDO::FETCH_ASSOC);
        echo $rows['UserID'];

    }

game.php

<?php
include_once "connections/db.php";
$lobby->lobbySession();
$lobby->userPublicInfo();
<!DOCTYPE html>
<html>
<head>
Rest of my html code pretty much

当我按下大厅中的球员名字时,它会抓住身份证。 例如:https://i.gyazo.com/9187b3d75a4633d564b51b0678444e1c.mp4

正如您所看到的,Jquery click函数正在为所调用的PHP mysql数据获取相应的ID。

现在,当我通过Ajax传递id,并尝试回显id或在查询中使用它时,它不起作用。我让它在另一个项目中工作,但在这个项目中它不是。

我做错了什么?需要帮助

1 个答案:

答案 0 :(得分:1)

1 $ .post`应指向不属于该类的文件。

<强> 1。将$.post更改为指向某个文件,在我的示例中我正在使用game.php

$(document).on("click", ".player", function(){
    var id = $(this).attr("id");
    var values = $(id).serialize();
    $.post('game.php', { data: values }, function(data) {
        alert(data);
    });
});

<强> 2。 Lobby.class.php

<?php


class Lobby
{
    private $db;
    private $id;

    public function __construct($db, $id)
    {
        $this->db = $db;
        $this->id = $id;
    }

    public function userPublicInfo()
    {
        $stmt = $this->db->prepare("SELECT * FROM account WHERE id='$this->id'");
        $stmt->execute();
        $rows = $stmt->fetch(PDO::FETCH_ASSOC);
        echo $rows['id'];

    }
}

第3。 game.php文件

<?php

$id = $_POST['data'];

include_once "connections/db.php";
include_once "Lobby.class.php";

$lobby = new Lobby($conn, $id);

//$lobby->lobbySession();
echo $lobby->userPublicInfo();