За последние 24 часа нас посетили 36599 программистов и 1722 робота. Сейчас ищут 795 программистов ...

Не добавляется в БД

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

Метки:
  1. Sema_qq

    Sema_qq Новичок

    С нами с:
    2 мар 2017
    Сообщения:
    9
    Симпатии:
    0
    Доброго времени суток постояльцам и просто залетным гостям!

    Юный падаван просит помощи у Ваших знаний и опыта. Да прибудет с Вами сила о познавшие Дзен и левитацию!

    Задача такая:
    форма, на ней поле для ввода, затем выбор одного значения из нескольких и третье выбор нескольких значений, всё это заноситься в базу данных, а затем выводиться на экран в виде таблички.

    Застрял на стадии занесения в БД:

    Код формы:
    Код (Text):
    1. <form name="form" method="post" action="connect.php">
    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>
    код передачи данных в 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.                 //var dop = new array ();
    8.                 if (name.length < 3) fail = "Вы ввели слишком короткое название!";
    9.                 else if (cat == "") fail = "Вы не выбрали кузов!";
    10.                 else if ($("input:checkbox:checked").prop("checked")) var dop = $("input:checkbox:checked").val ();
    11.                 else fail = "Вы не выбрали доп. оборудование!";
    12.                 if (fail != false)  alert(fail);
    13.                 else {
    14.  
    15.                 $.ajax ({
    16.                     url: '/ajax/connect.php',
    17.                     type: 'POST',
    18.                     cache: false,
    19.                     data: {'name': name, 'cat': cat, 'dop': dop,},
    20.                     dataType: 'html',
    21.                     success: function (data) {
    22.                         alert("Данные переданы на обработку!" + data);
    23.                     }
    24.                 }); };
    25.             });
    26.         });
    27.     </script>
    код обработчика:
    Код (Text):
    1. <?php
    2.     $mysqli = new mysqli("localhost", "root", "", "base");
    3.     $mysqli->query("SET NAMES 'utf-8'");
    4.  
    5.     $name = $_POST['name'];
    6.     $cat = $_POST['cat'];
    7.     $dop = $_POST['dop'];
    8.  
    9.     $success = $mysqli->query("INSERT INTO `auto` (`name`, `body`, `dops`) VALUES ('{$name}', '{$cat}'), '{$dop}')");
    10.  
    11.     echo $success;
    12.  
    13.  
    14.     $mysqli->close();
    15. ?>
    в базу не добавляется, почему не могу осилить.
     
  2. kolesnik.oleg

    kolesnik.oleg Новичок

    С нами с:
    12 янв 2017
    Сообщения:
    9
    Симпатии:
    0
    В коде обработчика убери скобки после $cat и $dop
     
  3. Sema_qq

    Sema_qq Новичок

    С нами с:
    2 мар 2017
    Сообщения:
    9
    Симпатии:
    0
    PHP:
    1. $success = $mysqli->query("INSERT INTO `auto` (`name`, `body`, `dops`) VALUES ('{$name}', '{$cat}', '{$dop}')");
    так?
     
    #3 Sema_qq, 10 мар 2017
    Последнее редактирование модератором: 10 мар 2017
  4. kolesnik.oleg

    kolesnik.oleg Новичок

    С нами с:
    12 янв 2017
    Сообщения:
    9
    Симпатии:
    0
    Так. Других ошибок пока не видно. Ты попробуй, если не получится - пиши сюда, будем разбираться.
     
  5. Sema_qq

    Sema_qq Новичок

    С нами с:
    2 мар 2017
    Сообщения:
    9
    Симпатии:
    0
    еее сработало! Спасибо! правда записывает только первый отмеченный чек бокс.... хм, походу дело в .val () , есть мысли?
     
  6. kolesnik.oleg

    kolesnik.oleg Новичок

    С нами с:
    12 янв 2017
    Сообщения:
    9
    Симпатии:
    0
    Раскоментируй //var dop = new array ();. Убери спереди 2 слэша.
     
  7. Sema_qq

    Sema_qq Новичок

    С нами с:
    2 мар 2017
    Сообщения:
    9
    Симпатии:
    0
    я пробовал так:
    Код (Text):
    1. var dop = new Array();
    2. else if ($("input:checkbox:checked").prop("checked")) $("input:checkbox:checked").each(function() {dop.push($(this).val());});
    но у меня перестают срабатывать алерты и форма в целом