За последние 24 часа нас посетили 26227 программистов и 1814 роботов. Сейчас ищут 1086 программистов ...

Добавление в БД данных из формы.

Тема в разделе "PHP для новичков", создана пользователем Sema_qq, 7 мар 2017.

  1. Sema_qq

    Sema_qq Новичок

    С нами с:
    2 мар 2017
    Сообщения:
    9
    Симпатии:
    0
    Добрый день!

    Есть форма:

    Код (Text):
    1. <form name="form" method="post" action="">
    2.     <br /><br />
    3.     <label for="name"><b>Введите марку автомобиля:</b></label><br />
    4.     <input type="text" placeholder="Введите марку автомобиля" id="name" name="name"/><br /><br />
    5.     <label><b>Выберите кузов:</b></label><br />
    6.     <label for="cat1">Седан</label><input type="radio" name="cat" id="cat1" value="Седан"/>
    7.     <label for="cat2">Хэтчбэк</label><input type="radio" name="cat" id="cat2" value="Хэтчбэк"/>
    8.     <label for="cat3">Универсал</label><input type="radio" name="cat" id="cat3" value="Универсал"/>
    9.     <label for="cat4">Купе</label><input type="radio" name="cat" id="cat4" value="Купе"/>
    10.     <br /><br />
    11.     <label><b>Выберите дополнительное оборудование:</b></label><br />
    12.     <label for="dop1">Защита</label><input type="checkbox" name="dop" id="dop1" class="dop" value="Защита"/>
    13.     <label for="dop2">Тонировка</label><input type="checkbox" name="dop" id="dop2" class="dop" value="Тонировка"/>
    14.     <label for="dop3">Коврики</label><input type="checkbox" name="dop" id="dop3" class="dop" value="Коврики"/>
    15.     <label for="dop4">Сигнализация</label><input type="checkbox" name="dop" id="dop4" class="dop" value="Сигнализация"/>
    16.     <label for="dop5">Фаркоп</label><input type="checkbox" name="dop" id="dop5" class="dop" value="Фаркоп"/>
    17.     <label for="dop6">Ксенон</label><input type="checkbox" name="dop" id="dop6" class="dop" value="Ксенон"/>
    18.     <br /><br />
    19.     <div id="display"></div>
    20.     <input type="button" method="post" value="Купить" name="done" id="done"/>
    21. </form>
    Данные из формы передаются с помощью jquery/ajax в php файлик, где должны добавляться в БД, а затем выводиться на экран табличкой в первом файлике с которого они были взяты.

    Так передаются:
    Код (Text):
    1. <script type="text/javascript">
    2.         $(document).ready(function () {
    3.             $("#done").click(function () {
    4.                 var fail = false;
    5.                 var name = $("#name").val ();
    6.                 var cat = form.cat.value;
    7.                 if (name.length < 3) fail = "Вы ввели слишком короткое название!";
    8.                 else if (cat == "") fail = "Вы не выбрали кузов!";
    9.                 else if ($("input:checkbox:checked").prop("checked")) var dop = $("input:checkbox:checked").val ();
    10.                 else fail = "Вы не выбрали доп. оборудование!";
    11.                 if (fail != false)  alert(fail);
    12.                 else {
    13.  
    14.                 $.ajax ({
    15.                     url: '/ajax/connect.php',
    16.                     type: 'POST',
    17.                     cache: false,
    18.                     data: {'name': name, 'cat': cat, 'dop': dop,},
    19.                     dataType: 'html',
    20.                     success: function () {
    21.                         alert("Данные переданы на обработку!")
    22.                     }
    23.                 }); };
    24.             });
    25.         });
    26.     </script>
    Есть функции по открытию/закрытию БД:

    Код (Text):
    1. <?php
    2.     $mysqli = false;
    3.     function connectDB () {
    4.         global $mysqli;
    5.         $mysqli = new mysqli("localhost", "root", "", "base");
    6.         $mysqli->("SET NAMES 'utf-8'");
    7.     }
    8.  
    9.     function closeDB () {
    10.         global $mysqli;
    11.         $mysqli->close ();
    12.     }
    13. ?>
    Как в php принять и занести в БД эти данные?
    Надо значения чекбоксов делать массивом? Насколько я понимаю при передаче через ajax они становятся строкой. Мне пойдет и чтобы они в бд строкой записались, лишь бы читабельно было при выводе.
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.599
    Симпатии:
    1.764
    надо сделать так:
    HTML:
    1.  <label for="dop1">Защита</label><input type="checkbox" name="dop[]" id="dop1" class="dop" value="Защита"/>
    и далее аналогично. Иначе чекбокс будет вести себя неожиданно (на сервер будет передаваться только последнее выделенное значение)

    val() по моему берёт значение первого из списка
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
    PHP:
    1. <?php
    2.     $mysqli = false;
    3.     function connectDB () {
    4.         global $mysqli;
    5.         $mysqli = new mysqli("localhost", "root", "", "base");
    6.         $mysqli->("SET NAMES 'utf-8'");
    7.     }
    8.     function closeDB () {
    9.         global $mysqli;
    10.         $mysqli->close ();
    11.     }
    12. ?>
    никогда так не делайте, насилие над подключением. Привет жоПопову.
    http://imgur.com/a/RSK6x
     
  4. Sema_qq

    Sema_qq Новичок

    С нами с:
    2 мар 2017
    Сообщения:
    9
    Симпатии:
    0
    Поправлю id у всех. Как тогда передать все значения?