2009-12-17 2 views
1

вот моя функция:JQuery Ajax не работает

$(".home .up_0").click(function() { 
    $.post("includes/vote.php", 
     {truc : $(this).attr("id")}, 
     function(data) { 
      if(data==1) { 
       $(this).parents('.home').find('.score_neutre').append(
        $(this).parents('.home').find('.score_neutre').val()+1 
       ); 
      } else { 
       alert("Error !"); 
      } 
     }, 
     "json" 
    ); 
}); 

Когда я нажимаю все работает, но это не меняет значение .score_neutre (что 1 и я хочу, чтобы изменить 2).

+2

Вы получаете ответ json и используете его как строку. – yoda

+0

Btw json выглядит так: {score: 12} или {values: {score: 12}}, к которому вы бы обращались с data.score или data.values.score соответственно. Вы просто хотите, чтобы все было передано обратно, не используйте json, если вы хотите использовать json инкапсулировать все в php как ассоциативный массив, а затем использовать json_encode ($ array); – MindStalker

ответ

3

Вы должны проверить (data.score == 1) не данные

«балл» будучи связано имя массива для данных JSon вы послали в.

+0

Я действительно не понимаю, в моем файле php я просто отправляю назад 1, если он работает, и 0, если он не работает. И это работает: | –

2

Что делает ваш ответ JSON выглядит? Вы не можете сравнивать это с номером.

Кроме того, вы используете append, что, скорее всего, неверно. Я думаю, вы хотите, чтобы вы действительно хотели сделать это:

var ele = $(this).parents('.home').find('.score_neutre'); 
ele.val(ele.val()+1); 
+0

хорошо, добавьте или это не работает. Я думаю, что это потому, что внутри функции (данных) она не работает –