За последние 24 часа нас посетили 24128 программистов и 1677 роботов. Сейчас ищут 1687 программистов ...

Checkbox передача через ajax

Тема в разделе "PHP для новичков", создана пользователем Дато, 13 ноя 2021.

Метки:
  1. Дато

    Дато Новичок

    С нами с:
    11 ноя 2021
    Сообщения:
    47
    Симпатии:
    0
    Всем привет, такой вопрос не могу сообразить что я делаю не так. нужна помощь
    код HTML формы


    HTML:
    1. <div class="row">
    2.            <div class="col-md-8 col-md-offset-2 eco--mt70">
    3.                <form action="" class="eco--mc--form1">
    4.                    <div class="eco--newsletter--1">
    5.                        <div class="eco--inner">
    6.                            <input type="email" name="p_email" placeholder="Введите адрес Email" class="p_email">
    7.                            <button class="p_button  eco--btn" id="p_button" >Подписаться &nbsp; <i class="fa-check "></i></button>
    8.                        </div>
    9.                        <br>
    10.                        <input type="checkbox"  name="check_botton"  class="check_botton">Я прочитал(а) и соглашаюсь с <a href="http://korobmarket.ru/politic.html"> политикой конфиденциальности</a>
    11.                         <span class="eco--btm--txt" id="subscription"><i class="fa fa-lock"></i> &nbsp; мы никогда не делимся вашей электронной почтой с другими</span>
    12.  
    13.                    </div>
    14.                </form>
    15.            </div>
    16.        </div>
    Далее ajax

    Код (Javascript):
    1. $(document).ready(function(){
    2.         $('button.p_button').on('click', function(e) {
    3.               e.preventDefault();
    4.             var email =$('input.p_email').val();
    5.             var hed =$('input.check_botton').is(':checked');
    6.  
    7.              
    8.              
    9.  
    10.                     $.ajax({
    11.                         method: "POST",
    12.                         url: "subscribe.php",
    13.                         data: { email_php: email,
    14.                                 hed_php: hed,
    15.                               },
    16.                             success: (function(data) {
    17.                             $('#subscription').html(data);
    18.                         })
    19.                     });
    20.         });
    21. });
    Так вот в чем весь вопрос, в файле php var_dump отображает массив а когда начинаешь писать код какой нибудь php значение checkbox не видит. будь это true, false ему плевать)
    как это исправить?


    код var_dump следующий array(2) { ["email_php"]=> string(3) "123" ["hed_php"]=> string(5) "true" }
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.860
    Симпатии:
    750
    Адрес:
    Татарстан
    Значение и не увидит, вы передаёте результат проверки, он всегда true/false. Для передачи значение .val() передавайте, если чекбокс будет выбран, значение передастся
     
  3. Дато

    Дато Новичок

    С нами с:
    11 ноя 2021
    Сообщения:
    47
    Симпатии:
    0
    Код (Javascript):
    1. $(document).ready(function(){
    2.         $('button.p_button').on('click', function(e) {
    3.               e.preventDefault();
    4.             var email =$('input.p_email').val();
    5.             var hed =$('input.check_botton').val();
    6.  
    7.            
    8.  
    9.  
    10.                     $.ajax({
    11.                         method: "POST",
    12.                         url: "subscribe.php",
    13.                         data: { email_php: email,
    14.                                 hed_php: hed,
    15.                               },
    16.                             success: (function(data) {
    17.                             $('#subscription').html(data);
    18.                         })
    19.                     });
    20.         });
    21. });

    если сделать как я понял так. а input задать например value="1", то он и передает всегда 1 не зависимо от того, нажат или нет(((((
    не соображу как сделать.
    --- Добавлено ---
    а если value не задавать, то только "on" и вижу

    array(2) { ["email_php"]=> string(0) "" ["hed_php"]=> string(2) "on" }
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.860
    Симпатии:
    750
    Адрес:
    Татарстан
    Код (Javascript):
    1. Value = $('check_button').prop('checked') ? ...val() : false;
     
  5. Дато

    Дато Новичок

    С нами с:
    11 ноя 2021
    Сообщения:
    47
    Симпатии:
    0
    не совсем догнал, можно как новичку по подробнее.
     
  6. Дато

    Дато Новичок

    С нами с:
    11 ноя 2021
    Сообщения:
    47
    Симпатии:
    0
    HTML:
    1. var hed = 123;
    2.                 if ($('.check_botton').prop('checked'))
    3.                   {
    4.                       hed = 'check_botton_checked="321"';
    5.                   }


    не совсем понял как твой код юзать по применил это немного по другому, спасибо, решил проблему вот так. )
     
    #6 Дато, 13 ноя 2021
    Последнее редактирование: 13 ноя 2021
  7. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.860
    Симпатии:
    750
    Адрес:
    Татарстан
    PHP:
    1. hed = $('input.check_button').prop('checked') ? $('input.check_button').val() : false;