Как обновить переменную PHP с Jquery Ajax? - PullRequest
0 голосов
/ 09 июля 2011

Я делаю простого избирателя, который принимает либо голос «за», либо за «не нравится».Затем я подсчитываю общее количество лайков и дислайков и вывожу общее количество.Я разобрался, как выставить голоса с помощью Jquery Ajax, но количество голосов не обновляется после того, как я проголосую.Я хотел бы обновить переменные $numlike и $numdislike, используя Jquery Ajax.

Вот скрипт PHP, относящийся к выводу:

$like = mysql_query("SELECT * FROM voter WHERE likes = 1 ");
$numlike = 0;
while($row = mysql_fetch_assoc($like)){ 
    $numlike++;
}

$dislike = mysql_query("SELECT * FROM voter WHERE likes = 0 ");
$numdislike = 0;
while($row = mysql_fetch_assoc($dislike)){  
    $numdislike++;
}

echo "$numlike like";
echo "<br>";
echo "$numdislike dislike";

ОБНОВЛЕНИЕ: Jquery Ajax для загрузки голосования

<script>
$(document).ready(function(){
    $("#voter").submit(function() {

    var like     = $('#like').attr('value');
   var dislike   = $('#dislike').attr('value');

        $.ajax({
            type: "POST",
            url: "vote.php",
            data: "like=" + like +"& dislike="+ dislike,   
            success: submitFinished
            });

            function submitFinished( response ) {
  response = $.trim( response );

  if ( response == "success" ) {
        jAlert("Thanks for voting!", "Thank you!");
        }

    return false;
    });
});
</script>

<form id="voter" method="post">
<input type='image' name='like' id='like' value='like' src='like.png'/>
<input type='image' name='dislike' id='dislike' value='dislike' src='dislike.png'/>
</form>

voice.php:

if ($_POST['like'])
{
    $likeqry  = "INSERT INTO test VALUES('','1')";
    mysql_query($likeqry) or die(mysql_error());
    echo "success";
}

if ($_POST['dislike'])
{
    $dislikeqry  = "INSERT INTO test VALUES('','0')";
    mysql_query($dislikeqry) or die(mysql_error());
    echo "success";
}

Ответы [ 2 ]

2 голосов
/ 09 июля 2011

Если вы хотите изменить текущий или не понравившийся номер после щелчка по нему, вы должны вернуть результат вместо его печати!верните json result и выведите его и измените div innerHTML, чтобы увидеть новый результат!

............
............
............
$dislike = mysql_query("SELECT * FROM voter WHERE likes = 0 ");
$numdislike = 0;
while($row = mysql_fetch_assoc($dislike)){  
    $numdislike++;
}

echo json_encode( array( $numlike, $numdislike ) ) ;
exit();

Теперь в вашем HTML-коде:

       $.ajax({
            type: "POST",
            url: "vote.php",
            context:$(this)
            data: "like=" + like +"& dislike="+ dislike,   
            success: submitFinished(data)
            });

            function submitFinished( response ) {
  response = $.parseJSON( response );
  //Now change number of like and dilike but i don't know where are shown in your html
  $('#like').attr('value',response[0]);
  $('#dislike').attr('value',response[1]);
  return false;
    });
1 голос
/ 09 июля 2011

Вы можете отправить переменную $ _GET или $ _POST в файл, который вы вызываете с AJAX.

.load("google.com", "foo=bar", function(){ 

 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...