Я создаю флажок подписки / отмены подписки, при регистрации пользователь будет подписан по умолчанию.если пользователь снял флажок (отменить подписку), он запросит подтверждение в confirm()
функции jquery и если вернет true, ajax-запрос обновит значение в базе данных и установит флажок для запуска функции subscribe
при следующем щелчке (без перезагрузки страницы).).
МОЯ ПРОБА
PHP
<?php if($newsletter_value){ ?>
<input id="checkbox" type="checkbox" name="checkbox" value="<?php echo $newsletter_value; ?>" onclick="unsubscribe();" checked>
<span class="label-text"></span>
<? } else{ ?>
<input id="checkbox" type="checkbox" name="checkbox" value="<?php echo $newsletter_value; ?>" onclick="update_newsletter(1);">
<span class="label-text"></span>
<? } ?>
JavaScript
function unsubscribe(){
var c = confirm("Are you sure?");
if(c){
update_newsletter(0);
}else{ $('#checkbox').prop('checked',true)}
}
function update_newsletter(newsletter){
url = '/updateNewsletter&newsletter='+newsletter ;
$.ajax({
type: 'get',
url: url,
dataType: 'html',
success: function() {
$('#success').append("<div class='alert alert-success'><i class='fa fa-check-circle'></i> You have successfully modified your subscription <button type='button' class='close' data-dismiss='alert'>×</button></div>");
},
error: function(xhr, ajaxOptions, thrownError) {
alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
}
});
}
Проблема
При загрузке первой страницы страница получает newsletter_value
от контроллера и показывает соответствующий флажок, но как только пользователь щелкает по нему и одновременно нажимает снова, та же функция будет работать, как при первом нажатии (без переключенияв функции).
Надеюсь, вы понимаете.и спасибо за помощь.