根据查询设置html按钮状态

时间:2015-01-12 13:11:18

标签: javascript php jquery html ajax

我有一个带有“favourite”按钮的页面,当点击该按钮时会运行Ajax帖子并相应地更新我的数据库表“favourite用户预订< / strong>详细信息。

目前的流程如下,

  • 点击按钮一次&gt;将书添加到收藏表&gt;刷新页面&gt;显示成功div

  • 再次点击按钮&gt;从收藏表中删除书籍&gt;刷新页面&gt;显示成功div

我现在要做的是页面加载,检查用户是否已将该书添加为收藏夹,如果是,请将此按钮的类设置为btn-success(绿色)。

我如何实现这一目标?我是否需要在页面加载时为按钮指定属性并在页面加载时检查它?

我是php和js的新手,所以任何建议都表示赞赏。我已将我的代码包含在内以供参考。

AJAX

$(document).ready(function(){

$( "#fav" ).click(function(){    

book_id = $(fav).val(); // set the value of the button as the book_id

    $.ajax({
         type: 'POST',
         url: '<?php echo URL; ?>books/checkFav',
         data: {book_id:book_id},
         success: function () { 
             window.location.reload(true);
            }//end success        
        });//end ajax   
    });
});

checkFav php

$bookid=$_REQUEST['book_id']; //get this from ajax
$userid=$_SESSION['user_id']; //get this from session

$sql = "SELECT * FROM favourite WHERE book_id = :book_id AND user_id = :user_id";

   ... //execute

if(empty($rows_found)) {
$sql = "INSERT INTO favourite (book_id, user_id) VALUES (:book_id, :user_id)";

... //execute

} else { 
$sql = "DELETE FROM favourite WHERE book_id = :book_id AND user_id = :user_id";

... //execute       
}

HTML

echo '<td>
<button id="fav" value="'.$book->id.'" type="button" class="btn btn-default"></button></td>';
echo '</tr>';

2 个答案:

答案 0 :(得分:2)

这是不正确的:

<button id="fav" value="'.$book->id.'" type="button" class="btn btn-default"></button>

您必须指定您想要PHP代码并且您想要echo $book->id,如下所示:

<button id="fav" value="<?php echo $book->id; ?>" type="button" class="btn btn-default"></button>

另外,假设你有一个PHP函数isFavorite,然后是

<button id="fav" value="<?php echo $book->id; ?>" type="button" class="btn btn-default<?php echo ((isFavorite()) ? (" btn-success") : ("")); ?>"></button>

答案 1 :(得分:0)

您可以做两件事:

  1. 创建一个php函数,检查它是否已经是收藏夹并返回true或false,并根据该函数向该按钮添加一个类,如下所示:

    $(&#34;#buttonId&#34)addClass。(&#34; BTN-成功&#34);

  2. 如果您在页面加载时已有此数据,则可以在html中添加内嵌的PHP代码,如下所示:

    如果($喜爱){     $ class =&#34; btn-success&#34 ;; }

  3. 然后在html中

    <button id="fav" value="<?php echo $book->id; ?>" type="button" class="btn <?php echo ($book->isFavorite()) ? 'favorite' : '';?>"></button>