Не удается передать дополнительные данные формы с данными переключателя в php через ajax - PullRequest
0 голосов
/ 25 марта 2019

У меня есть простая форма, у меня есть переключатель и 2 скрытых поля.Я хочу передать значение переключателя и скрытых полей через ajax на страницу php.Значение радиокнопки проходит нормально, но скрытых полей нет.Я жестко запрограммировал значения таблицы и идентификатора на странице php, чтобы убедиться, что значение переключателя передается для тестирования.

<input type="radio" name="contract" value="0" class="custom-switch-input">
<input type="radio" name="contract" value="1" class="custom-switch-input">
<input type="radio" name="contract" value="2" class="custom-switch-input">

<input type="hidden" name="table" value="timber_sales">
<input type="hidden" name="id" value="177">

$(document).ready(function(){
   $('input[type="radio"]').click(function(){
        var contract = $(this).val();

        $.ajax({
             url:"edit_do.php",
             method:"POST",
             data:{contract:contract,id:id,table:table},
        });
   });
});

Ответы [ 3 ]

1 голос
/ 25 марта 2019

Вы устанавливаете значение контракта в прослушивателе событий, но не id или table.

Чтобы это работало, как у вас сейчас, вам нужнопоищите в домене значения ваших скрытых полей.

var contract = $(this).val();
var id = $('input[name="id"]').val();
var table = $('input[name="table"]').val(); 
0 голосов
/ 25 марта 2019

Ваше событие jquery не знает о скрытых полях. Попробуйте это:

            <form id="form1">
                <input type="radio" name="contract" value="0" class="custom-switch-input">
                <input type="radio" name="contract" value="1" class="custom-switch-input">
                <input type="radio" name="contract" value="2" class="custom-switch-input">

                <input type="hidden" name="table" value="timber_sales">
                <input type="hidden" name="id" value="177">
            </form>
            <form id="form2">
                <input type="radio" name="contract" value="0" class="custom-switch-input">
                <input type="radio" name="contract" value="1" class="custom-switch-input">
                <input type="radio" name="contract" value="2" class="custom-switch-input">

                <input type="hidden" name="table" value="timber_sales">
                <input type="hidden" name="id" value="177">
            </form>
            $(document).ready(function(){
                $('form').change(function(){
                    event.preventDefault();

                    var send = $(this).data();

                    $.ajax({
                        url:"edit_do.php",
                        method:"POST",
                        data:send,
                    });
                });
            });    
0 голосов
/ 25 марта 2019

Сначала вам нужно получить значения из скрытых полей. Так же, как вы сделали с $(this).val() для значения переключателя. Итак:

$(document).ready(function(){
   $('input[type="radio"]').click(function(){
        var contract = $(this).val();
        var id = $('input[name=id]').val();
        var table = $('input[name=table]').val();

        $.ajax({
             url:"edit_do.php",
             method:"POST",
             data:{
               contract: contract,
               id:id,
               table:table
             },
        });
   });
});

Вероятно, лучше присвоить скрытым полям уникальный атрибут ID и получить их через $('#myuniqueid').val(), но, по крайней мере, описанное выше работает, если у вас нет других полей с именем ID или таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...