Вывод из базы данных в модальное окно
есть такая задача у меня , вывожу скажем товар на сайт и мне ,нужно что бы при клике подробнее выводилось из бд описание товара в модальное окно , и что бы у каждого было свое ,как такое сделать?
Знаю что ajax но пришел в ступор и не могу додуматься как ,пример кода привел))
Это у кнопки у каждого свой id
теперь вот функцию написать не могу
помогите пожалуйста)) или подскажите где искать ,гугл не помог((
#2 .•°*OopsS*°•.- Город Минусинск
.•°*OopsS*°•. (01 Июнь 2014 - 19:43) писал:
#4 W1nnyPyx #5 ПурнамСообщение отредактировал Пурнам: 02 Июнь 2014 - 16:08
#6 W1nnyPyxСпасибо но мне надо ,сделать так что бы в модальное окно выводился товар и бд ,и что бы у каждого товара было свое описание и тд)) допустим :
есть 3 кнопки: купить слона купить жирафа купить верблюда
и вот я кликаю на каждую и у каждого выводиться свое описание и тд ,скажем кликнул по "купить слона" вышло описание в модальном окне из бд о слоне)) в гугле нет такого что то вообще.
#7 matroskin8W1nnyPyx (02 Июнь 2014 - 17:16) писал:
Так в предложенных выше уроках ведь выводятся сотни разных товаров. у каждого товара свое название, свое описание. описание можно подгружать асинхронно, выполнив запрос в методе open.
W1nnyPyx (02 Июнь 2014 - 17:16) писал:
Да хоть 100 кнопок. Ваши животные имеют некий уникальный идентификатор в БД (ID, alias), по которому можно вытащить данные конкретного животного. Получаем идентификатор по клику и запрашиваем данные из БД по идентификатору.
W1nnyPyx (02 Июнь 2014 - 17:16) писал:
В предложенном выше уроке выводятся товары. По клику на выбранный товар, открывается карточка именно данного товара. Карточка открывается на новой странице, но точно также можно открыть ее и в модальном окне, получив данные асинхронно. Все это в том или ином виде есть в массе уроков на сайте. Нужно только посмотреть и, главное, понять, чтобы не бояться сделать шаг влево и вправо. чтобы уметь применить знания.
И простой пошаговый пример для осознания того, что ничего экстраординарного здесь нет: 1. Простой массив, в котором хранятся данные (на практике этот массив заменяет БД, из которой получаем запись по запросу):
3. Как простой вариант, используем плагин SimpleModal.
4. Несложный клиентский обработчик с отправкой асинхронного запроса:
5. И серверный обработчик (здесь выбираем данные из массива, на практике выбираем запись из БД и не забываем фильтровать значение):
Все, задача решена и ничего в ней экстраординарного нет. Архив с полным решением на всякий случай прикладываю.
Прикрепленные файлы- modal.zip5,86К 47 Количество загрузок:
Спасибо большое! но есть проблемы ((
процесс вроде как понял ,но в php еще не совсем хорошо понимаю так что извините за говно код.
Отправку через Ajax делаю так :
Тут я сделал что бы искало по ID из бд ,верно? или ошибка?
далее обработчик php: tovarload.php
Потом я использую другое модальное окно и теперь не знаю как в него вывести ((
и не забываем фильтровать значение А зачем фильтровать его? не подскажите?
Подскажите пожалуйста что не так)) matroskin8
Сообщение отредактировал W1nnyPyx: 03 Июнь 2014 - 16:41
#9 matroskin8W1nnyPyx (03 Июнь 2014 - 16:33) писал:
Нет, не верно. Точнее, код верный, если он работает, а вот формулировка неверная. JS лишь отправляет запрос на сервер. Все.
W1nnyPyx (03 Июнь 2014 - 16:33) писал:
Если обработчик работает, как нужно, значит все верно. Хотя вот эта строка: явно лишняя.
W1nnyPyx (03 Июнь 2014 - 16:33) писал:
Я не писал ваш код, не знаком с вашим приложением, а потому сложно что-то сказать. по частям кода вряд ли можно составить целостную картину и понять идею. Подозреваю, что нужно просто из JS обратиться к нужному элементу, например, к блоку с ID fom и вставить в него ответ от сервера.
W1nnyPyx (03 Июнь 2014 - 16:33) писал:
#10 W1nnyPyxСообщение отредактировал W1nnyPyx: 03 Июнь 2014 - 17:19
#11 W1nnyPyxmatroskin8 (03 Июнь 2014 - 17:07) писал:
вот ,как вывести скажем сюда
ответ от tovarload.php ?
нашел еще вот что ,но json я не знаю((
matroskin8 (03 Июнь 2014 - 17:07) писал:
А можете помочь пожалуйста?
Сообщение отредактировал W1nnyPyx: 03 Июнь 2014 - 18:56
#12 matroskin8W1nnyPyx (03 Июнь 2014 - 17:19) писал:
matroskin8 (03 Июнь 2014 - 17:07) писал:
Делается это просто, примерно так:
#13 W1nnyPyxспасибо я вывел ))) но теперь проблема он выводит только 1 товар у всех товаров))
tovarload.php
сама кнопка
3 день уже сижу мучаюсь ,не могу понять почему так((
думаю что ошибка в обработчике tovarload.php , но какая именно не знаю((
Сообщение отредактировал W1nnyPyx: 04 Июнь 2014 - 18:24
#14 matroskin8W1nnyPyx (04 Июнь 2014 - 18:23) писал:
Очень хорошая статья на эту тему - Ничего не работает! Что делать. Поиск ошибок и отладка. И действительно, можно 100 раз смотреть на единственную строку кода и не заметить пропущенной кавычки или точки с запятой. человек не должен (и практически не может), взглянув на код, увидеть ошибку. нет, это работа машины, которая, проанализировав код, подскажет, где ошибка. Ну вот, например, даже здесь, на форуме, сработала подсветка кода и "подсказала", что где-то в этой строке есть ошибка: Посмотрите внимательнее, здесь напутано с кавычками. насколько я вижу, в этом участке: data-id="'.$row["id_tovar"].' . здесь пропущена закрывающая двойная кавычка (если я верно понял вывод).
Машина всегда подскажет ошибку в виде вывода сообщения на экран, в логи или в консоль. Вот там и нужно все это смотреть. Это логично, поскольку не может человек в уме выполнить код, при этом не имея данных, которые поступают в этот код. Поэтому внимательно просмотрите исходный код (лучше всего в Firefox, который выделит все ошибки разметки красным цветом), посмотрите, есть ли ошибки в консоли, проведите дебаг, посмотрев, что уходит на сервер и что возвращается в качестве ответа.
#15 W1nnyPyxmatroskin8 (05 Июнь 2014 - 06:32) писал:
Очень хорошая статья на эту тему - Ничего не работает! Что делать. Поиск ошибок и отладка. И действительно, можно 100 раз смотреть на единственную строку кода и не заметить пропущенной кавычки или точки с запятой. человек не должен (и практически не может), взглянув на код, увидеть ошибку. нет, это работа машины, которая, проанализировав код, подскажет, где ошибка. Ну вот, например, даже здесь, на форуме, сработала подсветка кода и "подсказала", что где-то в этой строке есть ошибка: Посмотрите внимательнее, здесь напутано с кавычками. насколько я вижу, в этом участке: data-id="'.$row["id_tovar"].' . здесь пропущена закрывающая двойная кавычка (если я верно понял вывод).
Машина всегда подскажет ошибку в виде вывода сообщения на экран, в логи или в консоль. Вот там и нужно все это смотреть. Это логично, поскольку не может человек в уме выполнить код, при этом не имея данных, которые поступают в этот код. Поэтому внимательно просмотрите исходный код (лучше всего в Firefox, который выделит все ошибки разметки красным цветом), посмотрите, есть ли ошибки в консоли, проведите дебаг, посмотрев, что уходит на сервер и что возвращается в качестве ответа.
Да спасибо! ошибку исправил но все равно не выводит)) про вывод ошибок я знаю это все стоит) но не выводит все равно ничего((
работаю в mozila с firebag . скорее всего руки просто кривые у меня))
$animals_desc = array ( 'elephant' => "Вы собрались купить слона" , 'giraffe' => "Вы собрались купить жирафа" , 'camel' => "Вы собрались купить верблюда" );
Вот это я не понял , я ведь создал массив верно? который ниже))
при клике по кнопкам выводит массив такой ,значит он читает данные))
но вот что дальше не выводит не пойму)
Сообщение отредактировал W1nnyPyx: 05 Июнь 2014 - 10:06
#16 matroskin8W1nnyPyx (05 Июнь 2014 - 09:41) писал:
. и дальше по тексту. Т.е. главное здесь - это контроль над данными, которые запрашиваете/получаете, получаете ли вообще что-то и получаете ли те данные и в полном объеме.
Также в статье есть замечательная мысль:
Слова действительно правильные. Не автор приложения (не простенького скрипта) в очень редких случаях может сказать, где ошибка. и то, в большинстве этих редких случаях, скорее всего, не автор просто угадает эту ошибку. Только автор скрипта может найти ошибку, поскольку только автор работает с кодом, с данными, которые приходят в код. к примеру, я совершенно не представляю что и в каком виде приходит в код и приходит ли вообще. Я смогу найти ошибку только в том случае, если непосредственно начну работать (не смотреть код) с вашим кодом, когда начну проводить его отладку. Вот эту вот отладку как раз и нужно провести вам. В рекомендованной статье есть и примеры проведения дебага (отладки).
W1nnyPyx (05 Июнь 2014 - 09:41) писал:
Не знаю. По коду явных ошибок нет, но это отнюдь не значит, что в массив $row действительно попадают какие-то данные. однако распечатав на экран эти данные - их можно увидеть.
Итог всего того, что я написал: 1) по кускам кода практически невозможно составить целостную картину работы скрипта; 2) искать ошибки должна машина, которая их вам показывает, а вы уже их исправляете сами или с чьей-то помощью; 3) в вашем случае ошибка, скорее всего, в алгоритме, логике работы скрипта. т.е. код написан верно, без ошибок, но работает не так, как задумано. здесь стоит разбить ваш код на небольшие целостные блоки и проверять каждый конкретный блок на соответствие задуманному алгоритму. например, в вашем случае это могут быть блоки: а) вывод начальных данных (выводятся ли нужные данные. !смотреть только в HTML-коде!) б) получение данных по клику (получаем ли мы действительно те данные, которые нужны) в) отправка полученных данных на сервер (отправляются ли именно те данные и в полном объеме, которые нужны) г) получение данных сервером (получены ли все отправленные данные) д) формирование ответа сервером (формируется ли ожидаемый ответ) е) получение ответа клиентом (получен ли ожидаемый ответ) ж) вывод полученного ответа (выводится ли корректно полученный ответ) Вот, как-то так