php jqueryとajaxでレビューシステムを構築しています。「このレビューは役に立ちましたか?」のために、既に次のコードを作成しました。ボタン:
<input type='button' value='Yes' onClick = 'myCall()'
style='background-color:#556B2F;color:white;padding:2px; cursor:pointer'
name='help' />
<input type='hidden' id='randomdirectory' value='$g' name='ids'/>
$g は、データベースに保存されているレビューの ID に割り当てた変数です。ajax スクリプトは次のとおりです。
<script>
function myCall() {
var ids = $('#randomdirectory').val();
var self = this;
$.ajax({
url: 'rev.php',
type: 'POST',
data: {ids: ids},
success: function(data) {
$('#ques1').hide();
}
});
}
「rev.php」ファイルのコードは次のとおりです。
<?php
include 'includes/db.php';
$q = $_POST['ids'];
if ($q != ""){
$result = mysql_query("SELECT * FROM table where id='$q'");
while($row = mysql_fetch_array($result))
{
$finalproduct = $row['numberofhelpfulvotes'];
$finalproduct1 = $finalproduct + 1;
}
mysql_query("UPDATE table SET numberofhelpfulvotes='$finalproduct1' WHERE id ='$q'");
}
?>
問題は、ページに複数のレビューがある場合です。いずれかのレビューで [はい] ボタンをクリックすると、ボタンがクリックされた実際のレビューではなく、最初に表示されたレビューに投票が追加されます。また、ajax 呼び出し後にボタンとテキストが非表示になると、ボタンがクリックされたレビューではなく、最初のレビュー ボタンとテキストが非表示になります。また、ページの下部に黒い線が表示されます。
これらの問題に対する解決策は大歓迎です。