2017-06-30 18 views
1

私はPHPの初心者です。私は好きなボタンに機能性を追加したい。ユーザーがボタンのようにクリックすると、insertクエリが実行されてdbに値が挿入されます。ホームページ上のいくつかのイメージがありますが、対応するproductimage情報(商品コード)がproduct_likesに挿入する必要がありボタンをクリックするとPHPスクリプトを実行する方法

 <?php 
    $user_name=$_SESSION['user_name']; 
    $query="SELECT * FROM product_info"; 
    $result= mysqli_query($con, $query); 
    while ($row = mysqli_fetch_array($result)) { 


?> 
    <div class="w3-container"><br> 
    <img src="<?php echo "img/product_img/".$row['productimage'].""; ?>"> 
    <p><b>Product Name: </b><?php echo"".$row["productname"].""?><br>  
    </p> 
    <form id="like" method="post" action="home1.php"> 
     <button type="submit" name="like"><i class="fa fa-heart"></i>  Like</button> 
    <?php 
    if(isset($_POST['like'])){ 
     $result=mysqli_query($con,"INSERT INTO product_likes VALUES ('','".$row['productid']."','".$row1['sellerid']."','".$buyerid."')"); 

    } 
    ?> 
    </form> 
    </div> 
    <?php } ?>` 

をdb.`しかし、私は最初の画像に対応し、これと同じ商品コード、selleridを実行し、buyeridいつでもデータベースに挿入されています第1の画像のみが表示される。この問題を解決する方法はありますか?

+0

JavaScriptとPHPの両方を順次モードで実行しようとしています。それは起こりません。 PHPが最初に実行され、JavaScriptが実行されます。さらに、PHPはサーバー側で実行され、JavaScriptはクライアント側で実行されます。 –

答えて

0

まず、PHPがサーバー側言語であり、クライアントの前に実行され、JavaScriptがクライアント側言語であり、サーバー側が処理を終了してサーバーに戻ることはないということです。

ユーザーの動作に基づいてサーバーに話すような操作を行う場合は、エンドポイントを構成してサーバーへのAJAX呼び出しを開始する必要があります。ポストを好きにjQueryのを使用した簡単な例は次のようになります。上記の例では、ちょっと理由フォールバックの、「作品」が、かなりこのコンセプトである

$(function() { 
 
    $("a").click(function(e) { 
 
    e.preventDefault(); 
 
    $this = $(this); 
 
    if ($(this).text().trim() == "Like") { 
 
     $.post("/posts/like", { 
 
     PostID: 1 
 
     }, function(res) { 
 
     if (res == "success") 
 
      $this.text("Unlike"); 
 
     }); 
 
     $this.text("Unlike"); 
 
    } else { 
 
     if ($(this).text().trim() == "Unlike") { 
 
     $.post("/posts/unlike", { 
 
      PostID: 1 
 
     }, function(res) { 
 
      if (res == "success") 
 
      $this.text("Like"); 
 
     }); 
 
     $this.text("Like"); 
 
     } 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a href="#">Like</a>

。 "Like"または "Unlike"を作成するPHPコード全体を別々に指定し、jQueryのAJAX関数を使用する場合は、それをオフにする必要があります。

上記のURL:/posts/unlikeおよび/posts/likeは、データパラメータPostIDを取り込み、データベースに必要な変更を加えます。

関連する問題