Как получить значение выбранного флажка в jquery и присвоить его массиву json?

0

У меня проблема, я мало разбираюсь в jquery, поэтому мне сложно скомпоновать мой код. У меня есть разбиение на страницы продуктов. И на нем есть флажки. И моя простая цель - отключить продукты, если флажки выделены. Но я не могу сделать это в одной форме, потому что у меня уже есть другой процесс в моей форме, который является удаленным продуктом, если он выбран. Поэтому я планирую создать действие формы в своем jquery и передать все идентификатор продукта из моего флажка в массив json. Но как я могу это сделать?

Вот немного моего кода

<form action="<?php echo $delete; ?>" method="post" enctype="multipart/form-data" id="form">
  <table class="list">
    <thead>
      <tr>
        <td width="1" style="text-align: center;"><input type="checkbox" onclick="$('input[name*=\'selected\']').attr('checked', this.checked);" /></td>
        <td class="left"><?php echo $column_name; ?></td>
        <td class="right"><?php echo $column_sort_order; ?></td>
        <td class="left"><?php echo $column_status; ?></td>
        <td class="right"><?php echo $column_action; ?></td>
      </tr>
    </thead>
    <tbody>
      <?php if ($categories) { ?>
      <?php foreach ($categories as $category) { ?>
      <tr>
        <td style="text-align: center;"><?php if ($category['selected']) { ?>
          <input type="checkbox" name="selected[]" value="<?php echo $category['category_id']; ?>" checked="checked" />
          <?php } else { ?>
          <input type="checkbox" name="selected[]" value="<?php echo $category['category_id']; ?>" />
          <?php } ?></td>
        <td class="left"><?php echo $category['name']; ?></td>
        <td class="right"><?php echo $category['sort_order']; ?></td>
        <td class="right"><?php echo ($category['status'] == 1 ? 'Enable' : 'Disable'); ?></td>
        <td class="right"><?php foreach ($category['action'] as $action) { ?>
          [ <a href="<?php echo $action['href']; ?>"><?php echo $action['text']; ?></a> ]
          <?php } ?></td>
      </tr>
      <?php } ?>
      <?php } else { ?>
      <tr>
        <td class="center" colspan="4"><?php echo $text_no_results; ?></td>
      </tr>
      <?php } ?>
    </tbody>
  </table>
</form>

<br />
<div align="right">
  <select name="action_select">
    <option value="enable">Enable Selected</option>
    <option value="disable">Disable Selected</option>
  </select>
  <input type="button" class="button" id="update_status" value="Update Status" />
</div>
<br />

Здесь мой пример jquery

<script type="text/javascript">

    $("#update_status").on('click', function(){

        //how can I get the id of my checkboxes and assign it to a json array
        //How can I create a form inside it?

    });

</script>

Что все парни, я надеюсь, ты сможешь понять мой вопрос. Благодарю.

  • 0
    Вы можете получить все отмеченные флажки в jQuery с помощью $('checkbox:checked') . Поскольку ваши флажки уже находятся внутри формы, вы также можете выполнить $('form').serializeArray() и выполнить итерацию по тому, что проверено, а что нет. Но я не уверен, что вы подразумеваете под "назначить его массиву json", вы имеете в виду просто arr = []; затем $('checkbox:checked').each(function(){arr.push(this.id)}); тогда JSON.stringify(arr) ?
  • 0
    Вы также можете использовать подход «Почта Google» (веб-интерфейс) с одним флажком в начале строки и несколькими действиями, которые можно выбрать сверху / снизу для выбранных.

3 ответа

1
Лучший ответ

В противном случае вы можете использовать приведенный ниже примерный код
<script> $(document).ready(function() { $("input[type=checkbox]").click(function() { var categoryVals = []; categoryVals.push(''); $('#Category_category :checked').each(function() { categoryVals.push($(this).val()); }); $.ajax({ type:"POST", url:"<?php echo $this->createUrl('ads/searchresult');?>",//url of the action page data:{'category': categoryVals}, success: function(response){//code to do somethng if its success } }); } } </script>

1

пытаться

$('input[name="selected[]"]:checked').each(function() {
   console.log(this.value);
});

для получения дополнительной информации: - используйте jQuery для получения значений выбранных флажков

  • 0
    Вам нужно добавить [] после selected
  • 0
    ооо спасибо @AdamMerrifield
0

Пытаться

var values = $('.list input[name="selected[]"]:checked').map(function () {
    return this.value;
}).get();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню