0

こんにちは、url からdata-idを取得し、この id を使用してデータベースに挿入し、嫌いなシステムを作成しようとしています。

data-id="1"ユーザー ID です。

リンクは次のようになります。

<a data-fav="<?php echo $_SESSION['LANG']['favorite']; ?>" data-fav-active="<?php echo $_SESSION['LANG']['favorited']; ?>" class="favorite favoriteIcon" data="<?php echo $key['id']; ?>" data-id="<?php echo $key['user_id']; ?>" data-token="<?php echo $key['token_id']; ?>">

PHP ソース

いくつかの詳細情報: リンクはユーザーが書いたメッセージの中にあり、誰かがメッセージのようにクリックすると、関数呼び出しのお気に入りに移動します

public function favorites() {
    /*
     * ----------------------------------------------------------------------------
     *  Add, Remove Favorites
     * @$active  :"Check to see if the user has already added prior to Favourites"
     * @verified : "Check if the publication exists"
     * ----------------------------------------------------------------------------
     */

    $active   = self :: favsUser( null, $_SESSION['authenticated'], $_POST['id'] );
    $verified = self :: checkPost( $_POST['id'], $_POST['token'] ) ? 1 : 0;


    if( $verified == 1 && empty( $active ) )
    {
        $_idPost  = (int)$_POST['id'];
        $_sql     = $this->db->prepare("SELECT user FROM posts WHERE id = :id");
        $_sql->execute( array(  
                            ':id' => $_idPost 
                            ) 
                        );
        $response = $_sql->fetch( PDO::FETCH_OBJ );

        /** If not exists, insert new record  **/
        $sql = $this->db->prepare("INSERT INTO favorites VALUES( null, ?, ?, '1', '".$this->_dateNow."' );");
        $sql->bindValue( 1, $_GET['data-id'], PDO::PARAM_INT );
        $sql->bindValue( 2, $_POST['id'], PDO::PARAM_INT );
        $sql->execute();
        if( $sql->rowCount() !=  0 ) {

            if( $response->user != $_SESSION['authenticated'] ) {
                /* Send Interaction */
            self :: sendInteraction( $response->user, $_SESSION['authenticated'], $_idPost, 3 );    
            }
            return( 1 );
        }

    }

    if( $verified == 1 && !empty( $active ) && $active[0]['status'] == '1' )
    {
        /** If exists, update status to Delete/Trash  **/
        $sql = $this->db->prepare("UPDATE favorites SET status = '0' WHERE id_usr = ? && id_favorite = ? ");
        $sql->bindValue( 1, $_SESSION['authenticated'], PDO::PARAM_INT );
        $sql->bindValue( 2, $_POST['id'], PDO::PARAM_INT );
        $sql->execute();
        if( $sql->rowCount() !=  0 )
        {
            return( 2 );
        }
    }
    else if ( $verified == 1 && !empty( $active ) && $active[0]['status'] == '0' )
        {
            /** If exists and status == Delete/Trash, update status to Active  **/
            $sql = $this->db->prepare("UPDATE favorites SET status = '1' WHERE id_usr = ? && id_favorite = ? ");
            $sql->bindValue( 1, $_SESSION['authenticated'], PDO::PARAM_INT );
            $sql->bindValue( 2, $_POST['id'], PDO::PARAM_INT );
            $sql->execute();
        if( $sql->rowCount() !=  0 )
        {
            return( 3 );
        }
    }
        return false;
        $this->db = null;

   }   

MYSQL スターチャー

テーブルのお気に入り

COLUMNS: id (自動)、id_usr (url から取得する必要がある data-id からのユーザー ID)、id_post (投稿がすべて設定されている場合)、date (日付)

ありがとうございました。

4

2 に答える 2

0

URL パラメーターdata-idが必要だと言いますが、コードでそれを参照することはありません。を使用するだけ$_GET['data-id']です。

編集:あなたの質問をより詳しく見てきたので、AJAX を使用して JavaScript でそれを行うことについて実際に質問していると思います。その場合は、jQuery を使用することを強くお勧めします。次に、この jsFiddleにあるようなもので ID を取得するだけです。

リンクを実際にクリック可能なリンクとして機能させたい場合は、次のように変更する必要があります。

<a data-fav="like" data-block-active="like" class="block" data="21" data-id="1" data-token="e6fcbe9adff7764872b8b9a571848084e36cf72a" href="?data-id=1">foo bar text goes here...</a>

$_GET['data-id']次に、実際に PHP コードで使用できます。

于 2013-11-14T06:38:59.913 に答える