Я использую акты как проголосоваемую жемчужину и внедряю систему голосования в комментариях. Теперь я хочу, чтобы страница перестала перезагружаться, когда пользователь нажимает ссылку «вверх» или «вниз» и обновляет счетчик голосов. Я завязывания использовать этуобновить div с помощью ajax onclick rails с помощью xmlhttprequest
<script>
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","URL_HERE",true);
xmlhttp.send();
}
</script>
мою _comment.html.erb
<%= div_for comment do %>
<p>
<div style="float: left; text-align: center; margin-right: 20px;" class="comment">
<% if user_signed_in? %>
<% if current_user.voted_for? comment %>
<%= link_to image_tag("updis.png", {:style => 'width: 30px'}), like_post_comment_path(@post, comment), method: :put, :disabled => 'disabled' %><br />
<% if comment.likes.size > comment.dislikes.size %>
+<%= comment.likes.size-comment.dislikes.size %><br />
<% elsif comment.likes.size < comment.dislikes.size %>
<%= comment.likes.size-comment.dislikes.size %><br />
<% else %>
<%= comment.likes.size-comment.dislikes.size %><br />
<% end %>
<%= link_to image_tag("downdis.png", {:style => 'width: 30px'}), dislike_post_comment_path(@post, comment), method: :put, :disabled => 'disabled' %>
<% else %>
<%= link_to image_tag("upvote.png", {:style => 'width: 30px'}), like_post_comment_path(@post, comment), method: :put %><br />
<% if comment.likes.size > comment.dislikes.size %>
+<%= comment.likes.size-comment.dislikes.size %><br />
<% elsif comment.likes.size < comment.dislikes.size %>
<%= comment.likes.size-comment.dislikes.size %><br />
<% else %>
<%= comment.likes.size-comment.dislikes.size %><br />
<% end %>
<%= link_to image_tag("downvote.png", {:style => 'width: 30px'}), dislike_post_comment_path(@post, comment), method: :put %>
<% end %>
<% else %>
<%= link_to image_tag("updis.png", {:style => 'width: 30px'}), like_post_comment_path(@post, comment), method: :put, :disabled => 'disabled' %><br />
<% if comment.likes.size > comment.dislikes.size %>
+<%= comment.likes.size-comment.dislikes.size %><br />
<% elsif comment.likes.size < comment.dislikes.size || comment.votes.size == 0 %>
<%= comment.likes.size-comment.dislikes.size %><br />
<% else %>
<%= comment.likes.size-comment.dislikes.size %><br />
<% end %>
<%= link_to image_tag("downdis.png", {:style => 'width: 30px'}), dislike_post_comment_path(@post, comment), method: :put, :disabled => 'disabled' %>
<% end %>
</div>
<div style="float: left; margin-right: 20px;">
<%= image_tag avatar_url(comment.user), class: 'profile-picture' %>
</div>
<strong>
<%= time_ago_in_words(comment.created_at).capitalize %> আগে <%= link_to comment.user.name, comment.user %> বলেছেন,
</strong>
<p>
<%= comment.body %><br/><br />
</p>
</p>
<hr />
<% end %>
Я не могу понять, что URL следует использовать в этой строке
xmlhttp.open("GET","URL_HERE",true);
может кто-нибудь скажите мне, как это сделать.
У вас должен использовать XHR или вы можете использовать 'jQuery' (' $ .ajax')? –
все, что сработает, отлично подходит для меня ... Я даже использовал стойку pjax, используя видео railscasts ... но не смог заставить ее работать – Shuvro
Хорошо спасибо - позвольте мне написать ответ через несколько минут –