0

我正在尝试创建一个like 函数,但是我在将like id 分配给comment id 时遇到了问题。

代码:

索引.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>&nbsp;<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>&nbsp;<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。但是我不能将 return 放在 while 循环中,因为那样我只会得到一个结果(所以每个评论的点赞按钮将获得相同的 id,如果我喜欢一个评论,所有其他评论都会被喜欢)。如果我只是创建一个 while 循环并将结果放入一个数组中,那么我也无法在 comment_id 中传递它们来为每个评论打印点赞按钮。

我还尝试为like 按钮创建一个单独的函数,从第一个函数(createComment)获取comment_id 并将其传递给第二个函数(比如说''likeComment'')。它效果不佳,但我不确定我是否做得对。如何将值从一个函数传递到另一个函数?有没有其他方法可以获得我想要的价值?

有任何想法吗?解决方案可能很简单,但我真的很努力。一切正常,我非常接近让评论框正常工作。

任何帮助将非常感激

4

1 回答 1

0

为了在对象的方法之间共享数据,您应该在每个函数中以 $this->variable 名称分配/访问变量。我不确定这是否正是您要寻找的...

class myClass {
    public $test_var;

    function one () {
        $this->test_var = 'a string'; // sets the value
    }

    function two() {
        echo $this->test_var; // prints 'a string'
    }
}
于 2013-02-17T00:07:47.937 回答