我正在尝试创建一个类似的函数,但是我在向注释ID分配id时遇到了问题。
代码:
的index.php
include "includes/db.php";
include "comment.class.php";
.....
.....
$comment = array();
$result = mysql_query("SELECT * FROM box");
while ($rows = mysql_fetch_assoc($result)) {
$comment[] = new Comment($rows);
}
foreach ($comment as $c) {
echo $c->createComment();
}
<div id="addCommentArea">
<p>Add a Comment</p>
<form id="addCommentForm" method="post" action="">
<div>
<label for="name">Name</label>
<input type="text" name="name" id="name" />
<label for="body">Comment Body</label>
<textarea name="body" id="body" cols="30" rows="5"></textarea>
<input type="submit" id="submit" value="Submit" />
</div>
</form>
</div>
</div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="script.js"></script>
COMMENT.PHP
.....
.....
class Comment
{
private $data = array();
public function __construct($row)
{
// The constructor
$this->data = $row;
}
public function createComment()
{
$d = &$this->data;
$link_open = '';
$link_close = '';
return "<div class='comment'>
<div class='username'>".$link_open.$d['name'].$link_close."</div>
<p>".$d["body"]."</p>
<a href='' id='$comment_id' class='like_button'><img src='thumbs_up.png'/></a> <span class='like_show$comment_id'
style='font-weight:bold;font-family:Georgia, Times New Roman, Times, serif;fontsize:12px;position:relative;top:-2px;'>$like_count</span>
</div>";
}
}
所以我试图在这里传递comment_id和like_count:
<a href='' id='$comment_id' class='like_button'><img src='thumbs_up.png'/></a> <span class='like_show$comment_id' style='font-weight:bold;font-family:Georgia, Times New Roman, Times, serif;fontsize:12px;position:relative;top:-2px;'>$like_count</span>
我尝试添加一个while循环,遍历表并获取comment_id。但是我不能把返回放在while循环中因为那时我只得到一个结果(所以每个注释的like按钮会得到相同的id,如果我喜欢一个注释,所有其他注释都会被喜欢)。如果我只是创建一个while循环并将结果放在一个数组中,那么我也无法在comment_id中传递它们来为每个注释打印like按钮。
我还尝试为like按钮创建一个单独的函数,从第一个函数(createComment)获取comment_id并将其传递给第二个函数(让我们说''likeComment'')。它没有用,但我不确定我做得对。如何将值从一个函数传递到另一个函数?有没有其他方法可以获得我想要的价值?
有什么想法吗?解决方案可能很简单,但我真的很挣扎。一切正常,我很接近使评论框工作。
非常感谢任何帮助
答案 0 :(得分:0)
为了在对象的方法之间共享数据,您应该将每个函数中的变量分配/访问为$ this-&gt;变量名。我不确定这是不是你想要的......
class myClass {
public $test_var;
function one () {
$this->test_var = 'a string'; // sets the value
}
function two() {
echo $this->test_var; // prints 'a string'
}
}