Передача цифр посредством ajax
столкнулся с проблемой передачи values с селектора. дело в том, что при использовании ajax неправильно передает значения, или я не знаю, как их правильно передавать. дело в том, что при занесении этих цифр в базу данных они не сохраняются, а если переносить их как строку text, то сохраняются там как Array. можете подсказать, как решить такую проблему? вот код -
$(document).ready(function() {
var search = $("#searchbutt");
search.click(function() {
var janrs = $("#janrs").val();
$.ajax({
url: "/obrabotchik.php",
type: "POST",
data: ({
janrs: janrs
})
});
});
});
php обработчик-
mysqli_query($CONNECTDB, "INSERT INTO `test` (`test`) VALUES ($_POST[janrs])");
и селектор -
<select name="selected_category[]" id="janrs" class="chosen-select" multiple data-placeholder="По каким жанрам искать">
<option value="72">
Альтернативная история
</option>
<option value="43">
Альтернативная реальность
</option>
<option value="44">
Ангелы
</option>
<option value="26">
Андроиды
</option>
<option value="73">
Антивойна
</option>
<option value="74">
Антиутопия
</option>
<option value="92">
Баскетбол
</option>
<option value="107">
Безумие
</option>
<option value="2">
Бисёнэн
</option>
<option value="64">
Боевые искусства
</option>
<option value="45">
Божества
</option>
<option value="46">
Вампиры
</option>
<option value="47">
Ведьмы
</option>
<option value="13">
Вестерн
</option>
<option value="61">
Виртуальная реальность
</option>
<option value="76">
Военная тематика
</option>
<option value="75">
Война
</option>
<option value="19">
Воры
</option>
<option value="77">
Гарем
</option>
<option value="96">
Гарем (для девочек)
</option>
<option value="102">
Гендерная интрига
</option>
<option value="48">
Демоны
</option>
<option value="14">
Детектив
</option>
<option value="4">
Дзёсэй
</option>
<option value="49">
Драконы
</option>
<option value="15">
Драма
</option>
<option value="50">
Зомби
</option>
<option value="104">
Игры
</option>
<option value="38">
Инопланетные расы
</option>
<option value="29">
Искусственный интеллект
</option>
<option value="78">
Искусство
</option>
<option value="80">
Исторический
</option>
<option value="105">
Исэкай
</option>
<option value="81">
Киберпанк
</option>
<option value="39">
Киборги
</option>
<option value="16">
Комедия
</option>
<option value="40">
Космос
</option>
<option value="82">
Кулинария
</option>
<option value="83">
Лоликон
</option>
<option value="34">
Любовный треугольник
</option>
<option value="51">
Магия
</option>
<option value="99">
Манга
</option>
<option value="20">
Мафия/Якудза
</option>
<option value="5">
Махо-сёдзё
</option>
<option value="106">
Машины
</option>
<option value="25">
Меха
</option>
<option value="31">
Мистика
</option>
<option value="79">
Музыка
</option>
<option value="101">
Не японское
</option>
<option value="85">
Нелинейный сюжет
</option>
<option value="65">
Ниндзя
</option>
<option value="21">
Охотники за головами
</option>
<option value="62">
Параллельные миры
</option>
<option value="17">
Пародия
</option>
<option value="66">
Перестрелки
</option>
<option value="27">
Пилотируемые роботы
</option>
<option value="22">
Пираты
</option>
<option value="86">
Повседневность
</option>
<option value="87">
Политика
</option>
<option value="88">
Полицейские
</option>
<option value="97">
Полулюди
</option>
<option value="89">
Постапокалиптика
</option>
<option value="18">
Преступность
</option>
<option value="52">
Призраки
</option>
<option value="32">
Приключения
</option>
<option value="67">
Прокси бои
</option>
<option value="98">
Психология
</option>
<option value="41">
Путешествия во времени
</option>
<option value="33">
Романтика
</option>
<option value="53">
Русалки
</option>
<option value="90">
Русские в аниме
</option>
<option value="68">
Самураи
</option>
<option value="103">
Сверхъестественное
</option>
<option value="6">
Сёдзё
</option>
<option value="7">
Сёдзё-ай
</option>
<option value="8">
Сёнэн
</option>
<option value="9">
Сёнэн-ай
</option>
<option value="28">
Силовые костюмы
</option>
<option value="54">
Современное фэнтези
</option>
<option value="91">
Спорт
</option>
<option value="69">
Сражения на мечах
</option>
<option value="93">
Стимпанк
</option>
<option value="55">
Суккубы
</option>
<option value="70">
Суперспособности
</option>
<option value="10">
Сэйнэн
</option>
<option value="94">
Тайный заговор
</option>
<option value="56">
Темное фэнтези
</option>
<option value="57">
Темные эльфы
</option>
<option value="23">
Террористы
</option>
<option value="30">
Трансформеры
</option>
<option value="35">
Триллер
</option>
<option value="24">
Убийцы
</option>
<option value="36">
Ужасы
</option>
<option value="37">
Фантастика
</option>
<option value="58">
Феи
</option>
<option value="42">
Фэнтези
</option>
<option value="95">
Школьная жизнь
</option>
<option value="63">
Экшен
</option>
<option value="60">
Эльфы
</option>
<option value="100">
Эротика
</option>
<option value="11">
Этти
</option>
</select>
</div>
Ответы (1 шт):
Неправильный insert у вас, в запрос уходит массив.
Либо
insertделать через цикл и писать каждое значение массива в отдельную строку.Если вы поле в базе делаете типа
textи сохранятсяArray, ну тогда на что вы рассчитываете передавая в текстовое поле массив?json_encode($_POST['janrs']);при поле типаtextв базе, когда будете доставать,json_decode($row['janr']);.
Ну и такой запрос "INSERT INTO test (test) VALUES ($_POST[janrs])" как минимум должен вызвать проблему, что количество значений не совпадает с количеством столбцов в таблице (условно таблица из одного столбца int janr, а вы отдаете туда при лучших условиях, но не в этом случае 45, 44, 72 <- так не делается).