посылать стоимость checkbox как договоренности посредством ajax [удвоенная]

У этого вопроса уже есть ответ здесь:

привет у меня есть следующая проблема. он нуждался в том, чтобы послать стоимость группы checkbox в array, посредством ajax и обработать их в php с codeigniter., я начинаюсь с ajax а следовательно не даже многий из темы, Ваш вклад был бы очень важным, у меня есть следующий код:

<form id="formid">
  <input type="checkbox" value="1" name="page[]" class="up">
  <input type="checkbox" value="2" name="page[]" class="up">
  <input type="checkbox" value="3" name="page[]" class="up">
  <input type="checkbox" value="4" name="page[]" class="up">
  <input type="checkbox" value="5" name="page[]" class="up">
  <a href="#" id="enviar" />Enviar</a>
</form>


<script type="text/javascript">
$(document).ready(function() {
    $('#enviar').click(function(){
        var selected = '';    
        $(":checkbox[name=page]").each(function(){
            if (this.checked) {
                selected += $(this).val()+', ';
            }
        }); 
        if (selected != '') 
            $.ajax({
            cache: false,
            type: 'post',
            data: selected,
            url: 'roles/paginas',
            success: function(data){
            alert('datos enviados');
            }
           }); 
        else
            alert('Debes seleccionar al menos una opción.');

        return false;
    });         
});    
</script>

поскольку я могу посылать стоимость в array и обрабатывать их в моем драйвере в php

0
задан 25.01.2017, 23:44
0 ответов

Есть ошибка и другие вещи, чтобы улучшаться в этом коде:

  1. Ошибка: Где ты помещаешь checkbox, используй name="page" вместо name="page[]" так как а он не находит того, что ты пробуешь искать.

  2. Ты улучшаешься: Тебе следует использовать json чтобы посылать данные из-за того, что быть стандартом, он читабельный, уже есть надежные способы производить их и parsearlo, и т.д. Так что я сделал маленькие изменения, которые он комментировал бы в коде для того, чтобы ты смог видеть их.

Главный состоит в том, чтобы использовать dataType: "json" в запросе ajax, так как это способствует тому, чтобы он был послан (и был получен ответ, если она есть) расположенная в порядке и прямо в форме объектов, не должен будучи быть parseando вручную.

Оставшаяся часть их комментировали в коде, как использовать Array вместо цепи, чтобы вооружать договоренность.

Salu2

$(document).ready(function() {
  $('#enviar').click(function() {
    // defines un arreglo
    var selected = [];
    $(":checkbox[name=page]").each(function() {
      if (this.checked) {
        // agregas cada elemento.
        selected.push($(this).val());
      }
    });
    if (selected.length) {

      $.ajax({
        cache: false,
        type: 'post',
        dataType: 'json', // importante para que 
        data: selected, // jQuery convierta el array a JSON
        url: 'roles/paginas',
        success: function(data) {
          alert('datos enviados');
        }
      });

      // esto es solo para demostrar el json,
      // con fines didacticos
      alert(JSON.stringify(selected));

    } else
      alert('Debes seleccionar al menos una opción.');

    return false;
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="formid">
  <input type="checkbox" value="1" name="page" class="up">
  <input type="checkbox" value="2" name="page" class="up">
  <input type="checkbox" value="3" name="page" class="up">
  <input type="checkbox" value="4" name="page" class="up">
  <input type="checkbox" value="5" name="page" class="up">
  <a href="#" id="enviar" />Enviar</a>
</form>

Потом, чтобы схватывать эту договоренность в PHP, ты нуждаешься в том, чтобы сделать немного похоже как siguente:

// obtienes el cuerpo del POST
$entityBody = file_get_contents('php://input');

// decodificas el JSON
$data = json_decode($entityBody, true); // true es para recibir un array en $data

print_r($data); // ["1","2","3","4","5"] si estan todos seleccionados. 
2
ответ дан 03.12.2019, 17:30
  • 1
    привет спасибо за ответ, повторно разметило мой код но, у меня есть проблема, которая всегда отпускает меня, else. ' будь должен выбирать выбор.' каковой могла бы быть проблема –  26.01.2017, 00:30
  • 2
    @Criss ¿ безопасный, что copiste все различия? сосредоточись на этом примере, который, если он вводит в истинную руку if –  26.01.2017, 00:32
  • 3
    uff, это была моя вина я забыл ямса в неударе в лунку. спасибо, одна консультируется больше, посредством post, как он мог бы обрабатывать эту договоренность в моем драйвере php? спасибо за помощь –  26.01.2017, 00:39
  • 4
    @Criss сейчас я добавляю, как разбивание этого в php –  26.01.2017, 00:41
  • 5
    большое спасибо, вот тем, что necesitava :) –  26.01.2017, 00:52

Теги

Похожие вопросы