2013-04-10 1 views
0

Я создаю систему обзора с php jquery и ajax. Я уже написал следующий код для «Был ли этот отзыв полезен?» кнопка:'Этот обзор был полезным? кнопка 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 - это переменная, которую я присвоил идентификатору обзора, который хранится в базе данных. Сценарий 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, первая кнопка обзора и текст скрыты, а не обзор, на который была нажата кнопка. В нижней части страницы появляется черная линия.

Любые решения этих проблем будут очень признательны.

+0

Вы дали разные идентификаторы всем кнопкам? –

+0

Нет всех кнопок с идентификатором #randomdirectory –

+0

, тогда это не должно происходить, вы должны использовать событие нажатия кнопки и в том, что this.val() и id всех кнопок должны быть разными –

ответ

0

Спасибо за все ответы. Я закончил тем, что делал это, которое отлично работает для меня:

<script> 

$(function() { 
    $(".button").click(function() { 
    var ids = (this.id); 

    $.ajax({ 
     url: 'rev.php', 
     type: 'POST', 

     data: {ids: ids}, 
     success: function(data) { 
     $('.' + ids).hide(); 
    } 

    }); 
    }); 
}); 


</script> 

и это как HTML:

<div class='$g'><font size='2' color='black'>Was this review helpful?</font>&nbsp;<input type='submit' value='Yes' onClick = 'myCall()' style='background-color:#556B2F;color:white;padding:2px; cursor:pointer' name='help' id='$g' class='button' /><input type='hidden' id='randomdirectory' value='$g' name='ids'/> 

РНР остался тот же, но я буду обновлять его, чтобы сделать его более безопасным.