从另一个文件访问PHP类

时间:2012-05-23 03:21:59

标签: php ajax

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>The Ultimate War Game</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="_assets//js/ajax.js" type="text/javascript"></script>
</head>

<body>

<?php
include("/_assets/inc/war.php");
include("/_assets/inc/player.php");


    $war = new War();
    $deck_one = $war->getPlayerOneDeck();
    $deck_two = $war->getPlayerTwoDeck();

    $player_one = new Player($deck_one);
    $player_two = new Player($deck_two);

    ?>

<a id="next-card" href="javascript:void(0)">Next Play</a>


<div class="table">

    <div class="hands">

    </div>

</div>
</body>
</html>

我有两个类(不需要代码)。从提供的代码我创建一个战争类,玩家一个类,和玩家二。简而言之,这样做可以将卡片交给两个玩家并创建课程。

我的问题是我正在尝试创建一个名为Next Play的ajax函数。点击后我可以打开另一个PHP文件,但我无法访问$ war,$ player_one或$ player_two。

另一个问题是如果我将PHP代码放在ajax调用中,那么每次单击“Next Play”时它都会重新创建这些对象。

最终目标是我尝试创建这些对象,然后通过ajax或任何其他建议的方法访问这些对象的属性,而无需重新创建对象。我希望这不会令人困惑。

2 个答案:

答案 0 :(得分:1)

当PHP脚本结束时,其状态将被丢弃。正如您所说,每次再次运行此脚本时,状态将从头开始重新构建。这些值不会在请求之间自动保留。要保留数据,请将其放在session或其他永久存储器(如数据库)中。

答案 1 :(得分:1)

根据我对Chad的看法,你的数据结构并非永久性 你说你把你的代码放在ajax调用中 试着想一下ajax调用的本质,你称之为ajax函数(让我们说'下一个播放'),
然后该函数调用它之外的一些页面 机制就像你以普通的方式浏览网页一样 它每次你打电话时都要求一些对象,所以它对你当前的数据结构并不那么持久。

如果你想存储播放状态,只需尝试将数据存储在相当持久的地方,
比如在cookie或DB中。或者你可以将一些机制/算法转移到JavScript中 比如在JS变量中保持战争或甲板状态。即使添加回调函数来保持ajax调用后的状态也会有所帮助 这样,您就不必将数据存储在数据库或cookie中。

希望这有帮助。 :)