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或在查询中使用它时,它不起作用。我让它在另一个项目中工作,但在这个项目中它不是。
我做错了什么?需要帮助
答案 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();