いいねボタンを押したらいいね数が増える機能を実装しております。
いいねボタンがidが連番で並んでいるのですが、連番になっているidをjqueryで取得する場合、
どうすればいいかわからず詰んでいます。
PHP
1<div class="icon_cow" style="margin:0;"> 2 <input class="likeButton" type="image" src="<?php echo ROOT_PATH; ?>images/PFClogo_ushi.jpg" onclick="" 3 style="margin:0; width:24px; height:24px; margin:0; margin-left:3px; border:none;"> 4 <input type="hidden" name="auto_id" value="<?php echo $value['auto_id']; ?>"> 5 <?php foreach($driversId as $id) ?> 6 <input type="hidden" name="voter_id" value="<?php echo $id; ?>"> 7 <input type="hidden" name="submitter_id" value="<?php echo $value['driver_id']; ?>"> 8 <i class="far fa-thumbs-up"></i> 9 <?php 10 try { 11 $dbh = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASSWORD, $options); 12 $dbh->query('SET NAMES utf8'); 13 14 // m_like_masterからauto_idに紐づいたlike_idの数をカウントし取得。 AS counted を引数にしています 15 $sql = "SELECT COUNT(like_id) AS counted FROM m_like_master 16 WHERE auto_id= " . $value['auto_id']; 17 18 $stmt = $dbh->prepare($sql); 19 $stmt->execute(); 20 $countResult = $stmt->fetch(PDO::FETCH_ASSOC); 21 $current_like_count = $countResult['counted']; 22 23 $dbh = null; 24 25 } catch (PDOException $e) { 26 exit('顧客データベース接続失敗。'.$e->getMessage()); 27 } ?> 28 <!-- いいね数の表示 --> 29 <p id="like_result<?php echo $i; ?>" class="like_result"><?php echo $current_like_count; ?></p> 30
上記のコードで、<p id="like_result<?php echo $i; ?>" がidが連番で並んでいます。
jQeury
1let likeButton = $(".likeButton").each(function(i){ 2 $(this).attr('id','likeButton' + (i+1)); 3}); 4 5let likeResult = $('#like_result').each(function(i){ 6 $(this).attr('id', 'like_result' + (i + 1)); 7 }); 8 9 10likeButton.on('click', function(e){ 11 console.log(e) 12 let $_parent = $( this ).closest( '.icon_cow' ); 13 $.ajax({ 14 type: 'POST', 15 url: "sales_report_like_done_ajaxPost.php", 16 data: { 17 auto_id : $_parent.find("input[name=auto_id]").val(), 18 voter_id : $_parent.find("input[name=voter_id]").val(), 19 submitter_id : $_parent.find("input[name=submitter_id]").val(), 20 } 21 }); 22 likeResult.text( Number(likeResult.text()) + 1 ); 23 console.log(likeResult); 24 return false; 25}); 26 27
どうぞよろしくお願いします。
補足情報(FW/ツールのバージョンなど)
・バージョン
PHP 7.1.23
mysql 5.6.43