Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   PHP и AJAX и 3 тега select. (https://javascript.ru/forum/misc/60182-php-i-ajax-i-3-tega-select.html)

seahunter 15.12.2015 22:41

PHP и AJAX и 3 тега select.
 
Всем доброго времени суток. Возникли проблемы с реализацией отправки данных через ajax, а именно:
У меня есть 3 тега select в которые из базы выводятся значения такие как цвет, размер и цена(одежды). Когда я выбираю значения и нажимаю на кнопку submit данные отправляются post-ом в вызываемую через php функцию такого вида:
$product->get_product($_POST['colors'], $_POST['prices'], $_POST['size']);
Непосредсвенно данные это просто числовые значения от 0 - до n, они же id категорий в базе. Вызов функции, как и сами селекты находятся в одном файле index.php, сама реализация выборки из базы данных находится в другом - product.php
Ув. сообщество подскажите как передать данные в вызываемую функцию в качестве параметров через ajax. Было бы не плохо реализовать отправку хотябы с одного select-a.
P.S. прежде чем тут писал много гуглил, но ничего толкового не вышло. Спасибо.

laimas 15.12.2015 23:38

Цитата:

Сообщение от seahunter
Непосредсвенно данные это просто числовые значения от 0 - до n, они же id категорий в базе.

ID, это идентификатор, а следовательно уникален и если он формируется базой, то каким образом в ней появился ID = 0?

Обработка запросов - этот код в индексном файле поместить в самое начало, в условии которого подключать файл product.php, возвращать результат клиенту, после чего выход.

seahunter 16.12.2015 00:45

Да, ошибся. ID начинается с 1, давно базу создавал. Я пошёл по пути ООП и файлы, содержание классы, загружаются через __autoload. Дело в том, что я не могу правильный ajax запрос написать, так чтобы он отдавал приходящие данные в виде параметров в вызываемую функцию get_product. Хотелось бы увидеть пример такого кода.

laimas 16.12.2015 01:04

Цитата:

Сообщение от seahunter
я не могу правильный ajax запрос написать, так чтобы он отдавал приходящие данные в виде параметров

Параметрами будут имена списков, их значениями выбранные в них опции. Это, думаю, понятно. Обычная отправка формы и передаст их на сервер как

?colors=value&prices=value&size=value

Ajax сделает это же самое, с разницей только в асинхронном запросе. В чем конкретно проблема - с самим Ajax или как составить саму строку запроса для него? Код бы свой показали, хотя бы понятно было, что используете, например, если jQuery, то это использование всего лишь одного метода.

laimas 16.12.2015 12:48

Отвечу на письмо тут. Если в вашем проекте используется jQuery, то отправить асинхронный запрос это просто:

$(function() {
    //устанавливаем обработчик на отправление формы, например по ее ID, пусть это будет для примера myform
    $("#myform").submit(function() {
        //отправляем ajax-запрос на сервер, используя простейший из них
        //если форма это три указанных списка, то метод .serialize() и вернет необходимую строку запроса с параметрами
        $.get('url', $(this).serialize(), function(data) {
            //data будет содержать ответ сервера
        });
        //отменяем отправку формы
        return false;
    }); 
});


Здесь можно почитать об Ajax в jQuery. Если jQuery не используется, то тоже не проблема, это тоже не сложно в основе своей. Выставлять код нужно свой, ну или пояснять что используется, иначе гадать...


Часовой пояс GMT +3, время: 11:36.