Я не знаю, является ли это конкретно проблемой jquery, на самом деле я думаю, что это в основном связано с моей логикой в коде php.
То, что я пытаюсь сделать, - это создать систему голосования, которая, когдапользователь нажимает на ссылку для голосования вверх или вниз на веб-странице, он запускает ajax-вызов функции php, которая сначала обновляет базу данных требуемым значением, при успешном обновлении базы данных вызывается другая функция, просто чтобы получитьтребуется обновленный html для той конкретной записи, за которую проголосовал пользователь.(надеюсь, я тебя потерял).
Я думаю, что проблема связана именно с этой одной строкой кода.Когда я делаю вызов, он только возвращает значение $ row-> beer_down и полностью игнорирует все остальное в этой строке.Забавно то, что тот же php-код для отображения html-представления прекрасно работает до того, как его обновит функция ajax.
echo "<p>Score " . $row->beer_up + $row->beer_down . "</p>";
, так что вот код, на который можно надеяться, что вы можете помочь, поскольку я абсолютно не знаю, как это исправить.
вот файл представления, где он генерирует страницу.Эта часть является ajax-функцией запроса.
<script type="text/javascript">
$(function() {
$(".vote").click(function(){
var id = $(this).attr("id");
var name = $(this).attr("name");
var dataString = 'id='+ id ;
var parent = $(this);
if(name=='up') {
$.ajax({
type: "POST",
url: "http://127.0.0.1/CodeIgniter/blog/add_vote/" + id,
data: dataString,
cache: false,
success: function(html) {
//parent.html(html);
$("." + id).load('http://127.0.0.1/CodeIgniter/blog/get_post/' + id).fadeIn("slow");
}
});
}
else
{
$.ajax({
type: "POST",
url: "http://127.0.0.1/CodeIgniter/blog/minus_vote/" + id,
data: dataString,
cache: false,
success: function(html) {
//parent.html(html);
$("." + id).load('http://127.0.0.1/CodeIgniter/blog/get_post/' + id).fadeIn("slow");
}
});
}
return false;
});
});
</script>
Здесь HTML-часть и часть php страницы для отображения сообщения.
div id="post_container">
<?php //echo $this->table->generate($records); ?>
<?php foreach($records->result() as $row) { ?>
<?php echo "<div id=\"post\" class=\"" . $row->id . "\">"; ?>
<h2><?php echo $row->id ?></h2>
<?php echo "<img src=\"" . base_url() . $dir . $row->account_id . "/" . $row->file_name . "\">" ?>
<p><?php echo $row->content ?></p>
<p><?php echo $row->user_name ?> On <?php echo $row->time ?></p>
<p>Score <?php echo $row->beer_up + $row->beer_down ?></p>
<?php echo anchor('blog/add_vote/' . $row->id, 'Up Vote', array('class' => 'vote', 'id' => $row->id, 'name' => 'up'));
echo anchor('blog/minus_vote/' . $row->id, 'Down Vote', array('class' => 'vote', 'id' => $row->id, 'name' => 'down'));
echo anchor('blog/comments/' . $row->id, 'View Comments');
?>
</div>
<?php } ?>
- это функция, которую ajax вызывает при вызове.успешно:
function get_post() {
$this->db->where('id', $this->uri->segment(3));
$records = $this->db->get('post');
$dir = "/uploads/user_uploads/";
foreach($records->result() as $row) {
echo "<div id=\"post\" class=\"" . $row->id . "\">";
echo "<h2>" . $row->id . "</h2>";
echo "<img src=\"" . base_url() . $dir . $row->account_id . "/" . $row->file_name . "\">";
echo "<p>" . $row->content . "</p>";
echo "<p>" . $row->user_name . " On " . $row->time . "</p>";
echo "<p>Score " . $row->beer_up + $row->beer_down . "</p>";
echo "<p>Up score" . $row->beer_up . "beer down" . $row->beer_down . "</p>";
echo anchor('blog/comments/' . $row->id, 'View Comments');
echo "</div>";
}