флажок — установлен или снят с помощью jQuery и MySQL

#javascript #jquery #ajax #checkbox

#javascript #jquery #ajax #флажок

Вопрос:

В настоящее время я создаю систему, в которой должна быть возможность устанавливать / снимать флажок. Каждый раз, когда он меняет статус, мне нужен jQuery для выполнения AJAX-вызова страницы, которая обновляет базу данных.

Как я могу это сделать?

Ответ №1:

Например, вы можете сделать это следующим образом:

Сначала вы должны посмотреть, установлен ли флажок:

 $("#yourSelector").live("click", function(){
        var id = parseInt($(this).val(), 10);
        if($(this).is(":checked")) {
            // checkbox is checked -> do something
        } else {
            // checkbox is not checked -> do something different
        }
});
  

Вы можете загружать определенный контент через Ajax:

 $.ajax({
                type: "POST",
                dataType: "xml",
                url: "path/to/file.php",
                data: "function=loadContentamp;id="   id,
                success: function(xml) {
                    // success function is called when data came back
                    // for example: get your content and display it on your site
                }
});
  

Комментарии:

1. Помните, что вам нужно будет где-то объявить переменную id , прежде чем присваивать ей значение. И, при использовании parseInt() всегда стоит указывать основание : parseInt($(this).val(), 10);

Ответ №2:

На каком бите вы застряли? Вероятно, у вас должно быть что-то вроде этого…

 $('#myCheckbox').click(function() {
    var checked = $(this).is(':checked');

    $.ajax({
        type: "POST",
        url: myUrl,
        data: { checked : checked },
        success: function(data) {
            alert('it worked');
        },
        error: function() {
            alert('it broke');
        },
        complete: function() {
            alert('it completed');
        }
    });
});
  

Комментарии:

1. Ну, я застрял на клике. Я читал, что плохо использовать click с флажком. И когда я пытаюсь выполнять оповещения при нажатии на флажок, это ничего не предупреждает — поэтому я не уверен, что это работает : s

Ответ №3:

Определить, установлен ли флажок:

 if ( $('#id').is(':checked') ) { }
  

Это может быть выполнено в функции, которая запускается событием onchange.

 function checkCheckboxState() {

    if ( $('#id').is(':checked') ) { 

        // execute AJAX request here

    }
}
  

Ответ №4:

Вероятно, что-то вроде этого?

 $('.checkbox').click(function (){
    var val = $(this).is(':checked');
    $.load('url_here',{status:val});
});
  

Ответ №5:

 <input type="checkbox" name="foo" value="bar" class="checkIt"/>

<script type="text/javascript">
    $('.checkIt').bind('click', function() {
        if($(this).is(":checked")) {
            // checkbox is checked
        } else {
            // checkbox is not checked
        }
    });
</script>
  

Теперь у вас может быть более одного флажка.