получить значения всех ближайших полей, где флажок ввода динамически отмечен с помощью serialize - PullRequest
0 голосов
/ 05 марта 2019

Я использую codeigniter и jquery
. Например, если отмечен input#1, мне нужно получить значение input#menu-1
. Если отмечен input#2, я получу значение input#menu-2 ... даже если все проверено,
что я пробовал:

<form id="form">
                    <h2 class="text-uppercase font-weight-light">votre choix : </h2>
                    <div class="flex-row">
                        <input type="checkbox" id="1">
                        <label for="menu-1">item 1<span class="font-weight-bold">($ 500 )</span> x
                        </label>
                        <input id="menu-1" type="number" class="min" maxlength="2" value="1">
                    </div>
                    <div class="flex-row">
                        <input type="checkbox" id="2">
                        <label for="menu-2">item 2<span class="font-weight-bold">(2500 FCFA)</span> x
                        </label>
                        <input id="menu-2" type="number" class="min" maxlength="2" value="0">
                    </div>
                    <button id="next-1" type="submit" class="btn border border-secondary p-2">COMMANDER</button>
                </form>

я пробовал:

$('#next-1').click(function (e) {
        e.preventDefault();
        var form = $("#form").serialize();
        $.ajax({
            url: '<?php echo base_url("index.php/user/process") ?>'
            method: 'POST',
            data: form,
            dataType: 'json',
            success: function (reponse) {

            }
        });
    });

мой контроллер:

public function process()
    {
        if ($this->input->is_ajax_request()) {
            $data = $this->input->post();
            echo json_encode($data);
        }
    }

но я не получаю значения, поэтому он не работает

1 Ответ

0 голосов
/ 05 марта 2019

Потому что вам не хватает атрибута имени при вводе.Попробуйте эту

<input id="menu-1" type="number" class="min" maxlength="2" value="1" name="menu-1"> // check here name attribute at last.

форму сериализации принять значение из атрибута имени.

в вашем JavaScript

$("#form").click(function (e) {
        let form = $(this);
//for data filtering
var serializedReturn = form.find('input[name!=menu-1]').serialize(); // here menu-1 be removed.
        console.log(serializedReturn, 'value');
        e.preventDefault();
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...