Например, если я нажму кнопку «проголосовать», он успешно добавляет голосование за первое сообщение и отображает результат в элементе span с классом = «rate_votes», но он также отображает тот же результат в все элементы диапазона с одинаковым классом из-за следующей строки:Codeigniter ajax call не работает должным образом
$ (". rate_votes"). текст (курс); //
Как я могу избежать этого? Если я использую
$ (this) .text (rate); //
он не будет работать должным образом, потому что он не знает, какой элемент диапазона выбрать. Не могли бы вы мне помочь, пожалуйста.
Вот мое мнение:
<div>
<?php
foreach($results as $row){
$id = $row['id'];
$rate = $row['rate'];
?>
<div>
<?php
$data = array(
'name' => $id,
'class' => 'rate',
'content' => 'Vote Up'
);
echo form_button($data);
?>
<span class="rate_votes" >
<?php echo $rate; ?>
</span>
</div>
</div>
Вот мой JS файл:
$(document).ready(function() {
$(".rate").click(function(){
var self = this;
$(self).attr("disabled", true);
var id_like = $(self).attr("name");
$.post('filter/get_rate', { id_like: id_like }, function (data) {
var my_obj = data;
$.each(my_obj, function (i) {
var rate = my_obj[i].rate;
$(".rate_votes").text(rate); //
$(self).text("Voted!");
});
}, "json");
});
});
Вы проверили это? Попробуйте firebug для контроля вызовов ajax. – CMPS