У меня есть небольшая дилемма:)
У меня есть ссылка для пользователей, чтобы голосовать за элемент.Щелчок по ссылке сгенерировал вызов jQuery AJAX, проверяющий, вошел ли человек в систему. Если нет, в диалоговом окне отображается форма для входа в систему.
Но проблема в том, что вызов jQuery для входа и весь бит с всплывающим окном находится в другом месте.
Что мне нужно сделать, это проверить, если пользователь вошел в систему успешнои обновите счетчик голосов.
Я делаю это на этом сайте: http://www.problemio.com
Вот мой код jQuery:
<script type="text/javascript">
$(document).ready(function()
{
var $dialog = $('#loginpopup')
.dialog({
autoOpen: false,
title: 'Login Dialog'
});
$("#newprofile").click(function () {
$("#login_div").hide();
$("#newprofileform").show();
});
$('.vote_up').click(function()
{
problem_id = $(this).attr("data-problem_id");
var dataString = 'problem_id='+ problem_id + '&vote=+';
$.ajax({
type: "POST",
url: "/problems/vote.php",
dataType: "json",
data: dataString,
success: function(data)
{
// ? :)
alert (data);
},
error : function(data)
{
errorMessage = data.responseText;
if ( errorMessage == "not_logged_in" )
{
// Try to create the popup that asks user to log in.
$dialog.dialog('open');
// prevent the default action, e.g., following a link
return false;
}
else
{
alert ("not");
}
//alert(JSON.stringify(data));
}
});
//Return false to prevent page navigation
return false;
});
$('.vote_down').click(function()
{
alert("down");
problem_id = $(this).attr("data-problem_id");
var dataString = 'problem_id='+ problem_id + '&vote=-';
//Return false to prevent page navigation
return false;
});
});
</script>
Все это работает, кроме сразу после строки $dialog.dialog('open');
- я не знаю, как
- Получить сигнал об успешном сбое, и не знаю точно, как
- Обновите тот самый элемент, за который проголосовали, так как это только один из многих элементов, за которые можно проголосовать на странице.
Как я могу сделать эти две вещи?