0 / 0 / 2
Регистрация: 10.02.2013
Сообщений: 66
|
|
1 | |
PHP+$ в динамике16.10.2014, 13:50. Показов 1174. Ответов 25
Метки нет (Все метки)
Всем драсьте!
Вопрос в следующем: Мне надо "покрасить" кнопку меню в зависимости от события и теперь конкретнее: 1. Форму отправляю сабмитом 2. Форма обрабатывается PHP и евсли все гуд (там куча пеерменных и пр), то открываем сессию, например $_SESSION[]=true; 3. Затем (или не затем... может это и есть решение) Jquery (файл подключен includ'ом) берет div меню и если в числе прочего $_SESSION[]=true, то "красим" кнопку. В чем затык: Кнопка "перекрашивается" только после обновления страницы, т.е. после сабмита ниче не происходит. Сабмит постом отправляет на файл-обработчик запроса. Там же пробовал скрипт $ запихнуть в функцию PHP и вызвать сразу после присвоения значения сессии - тоже не выходит. Вот сижу и не могу придумать как сделать. Наверняка, все просто. Я понимаю, что кнопку можно покрасить по событию клик + условие в $, но мне надо бы через PHP, чтобы не дублировать с $. Есть варианты? AJjax выручит? Я пробовал постить аяксом запросы - сессия все равно в динамике не обновляется
0
|
16.10.2014, 13:50 | |
Ответы с готовыми решениями:
25
Задача по Динамике Отчет по динамике Задача по динамике PaintBox в динамике 2 |
0 / 0 / 2
Регистрация: 10.02.2013
Сообщений: 66
|
|
16.10.2014, 15:15 [ТС] | 3 |
Дайте, пжлст, небольшой пример, как получить значение конкретной переменной через JSON. (синтаксис не нужен - я знаком). У меня не получается принять значение сессии. Напишите, пжлст, фрагмент кода на стороне сервера для понимания сути передачи данных. У меня php файл большой и при получении в функцию данных выводится все содержимое файла, а не точечно значение переменной.
Интересен именно код после isset(POST[]) .
0
|
Develo0per
|
|||||||||||
16.10.2014, 16:01 | 4 | ||||||||||
CplplNoob, в целом это выглядит примерно так на стороне сервера:
пример упрощён как ты можешь предположить(и окажешься прав)
Добавлено через 7 минут Вот так примерно всё выглядит на стороне клиента... тоже простой кодик...
1
|
0 / 0 / 2
Регистрация: 10.02.2013
Сообщений: 66
|
|
16.10.2014, 16:30 [ТС] | 5 |
Спасибо! С кодом все ясно. Теперь заключительный вопрос:
Кнопка, которая красится, принадлежит главному меню. Красится, если закрашены все пункты второстепенного (при выполеннии условий - анкета заполнена верно - закрасили и т.д.) Все эти подпункты так же висят на сессиях. Т.е. кнопка главного красится, если сессия тру, сессия 2 тру и т.д. Получается, что кнопка главного меню красится вместе с последним заполенным пунктом подменю (подменю могут красится в неопределенном порядке). Сейчас я смотрю, если все сессии подменю - тру, то красим кнопку раздела. Затык может быть в том, что $ обработает запрос по клику сабмита, но сессия последней кнопки подменю не успеет стать тру(т.е. мы получим в аяксе одну сессию фальш) или по сабмиту данные улетят быстрее, чем к ним обратиться $ через post? Предугатдать какая кнопка подменю будет посленей не выйдет.
0
|
Develo0per
|
|
16.10.2014, 17:05 | 6 |
CplplNoob, как так...
У тебя же проверка сессий идёт в PHP значит в PHP уже будет ясно закрашивать или нет... и если закрашивать то возвращает какой нибудь ключ оповещающий что надо закрасить... и в JS проверяешь ответ из PHP в котором говорится закрасить или нет....
0
|
0 / 0 / 2
Регистрация: 10.02.2013
Сообщений: 66
|
||||||
16.10.2014, 17:20 [ТС] | 7 | |||||
Ну да
0
|
0 / 0 / 2
Регистрация: 10.02.2013
Сообщений: 66
|
|
16.10.2014, 17:26 [ТС] | 9 |
Да, наверное прежде всего проблема в этом... код и синтаксис - не так проблематично - языки схожи во многом, а вот насчет взаимодействия и приоритета и последовательности выполнения - до конца не понимаю.
0
|
Develo0per
|
|
16.10.2014, 18:09 | 10 |
CplplNoob,
В общем сперва идёт PHP обработка данных... далее идёт HTML отображение контента ajax: из AJAX объекта >>> идёт запрос в >>> PHP PHP возвращает ответ в объект AJAX в функцию success
0
|
0 / 0 / 2
Регистрация: 10.02.2013
Сообщений: 66
|
|
16.10.2014, 18:16 [ТС] | 11 |
Так и думал. Значит все таки, если мы вешаем на сабмит $ событие, то сначала отработает событие, потом уйдет PHP, а потом результат на экран. Таким образом кнопка по клику не перекрасится, т.к. еще php не записал последнюю сессию по сабмиту. Так? Если так, то надо, кнопку не трогать в $, а пропустить поиск и покраску через each. Кстати, в Вашем коде ошибка возвращается при отправке поста. Не могу пока понять почему (json уже правильно написал). Т.е. до обработки php дело не доходит.
0
|
0 / 0 / 2
Регистрация: 10.02.2013
Сообщений: 66
|
|
16.10.2014, 18:36 [ТС] | 13 |
Нет, это я не к тому, что вот- ошибка А к тому, что пока не могу протестировать, но уже начал выправлять... Это не в коде ошибка - это я неверно сделал. В общем, спасибо, за помощь - немного разобрался.
0
|
0 / 0 / 2
Регистрация: 10.02.2013
Сообщений: 66
|
|||||||||||
16.10.2014, 18:57 [ТС] | 15 | ||||||||||
Прошу прощения, но все же пока не могу отстать... Совсем немного еще уделите мне, пдлст, внимания.
Вот код:
JS тоже немного адаптировал
0
|
Develo0per
|
||||||||||||||||
16.10.2014, 21:19 | 16 | |||||||||||||||
Сообщение было отмечено CplplNoob как решение
Решение
Почему у тебя возвращается массив в массиве...?
так надо? Добавлено через 20 секунд
ваще это не правильно =) Добавлено через 35 минут Вот мой пример тебе: http://example.andy87.ru/40/form.php порядок в котором кликать указал в цыфрах: Посать запрос 1 3 5 Создать knop_green 2 Добавить в knop_green [5]== cred 4 код JS и HTML в браузере увидешь, а PHP вот: PHP
Добавлено через 7 минут 2я версия PHP Кликните здесь для просмотра всего текста
1
|
0 / 0 / 2
Регистрация: 10.02.2013
Сообщений: 66
|
|||||||||||
17.10.2014, 13:39 [ТС] | 17 | ||||||||||
Все получилось! Спасибо. Остался заключительный аккорд:
Меню состоит из 9 пунктов. На примере мы отработали один из них. Теперь я немного переделал код, но честно скажу, что не знаю как быть дальше и решил пойти по легкому пути (спросить у Вас как сделать), нежели снова рыть инет и тыкаться вслепую. Результат: надо чтобы кнопки красились по всему меню. Что имеем: PHP
JS (пока только для работы на одном пункте, т.е. не оптимизированный под вышеуказанный PHP
Сейчас JSON выдает {"data":{"data":"ob_i"},"success":null,"nomarker":null}{"data":null,"success":nu ll,"nomarker":null}{"data":null,"success":null,"nomarker":null}{"data":null,"suc cess":null,"nomarker":null}{"data":{"data":"cred"},"success":null,"nomarker":nul l}{"data":null,"success":null,"nomarker":null}{"data":null,"success":null,"nomar ker":null}{"data":null,"success":null,"nomarker":null}{"data":null,"success":nul l,"nomarker":null} Добавлено через 6 минут немного подправил код JSON {"data":{"data":"ob_i"},"success":null,"nomarker":null}{"data":null,"success":nu ll,"nomarker":1}{"data":null,"success":null,"nomarker":1}{"data":null,"success": null,"nomarker":1}{"data":{"data":"cred"},"success":null,"nomarker":null}{"data" :null,"success":null,"nomarker":1}{"data":null,"success":null,"nomarker":1}{"dat a":null,"success":null,"nomarker":1}{"data":null,"success":null,"nomarker":1}
0
|
Develo0per
|
||||||
17.10.2014, 13:48 | 18 | |||||
Сообщение было отмечено CplplNoob как решение
Решение
Как видно на скрине...
Кликните здесь для просмотра всего текста
строка 36 у Вас print происходит несколько раз... что ни есть хорошо... отсюда у вас и... Кликните здесь для просмотра всего текста
тогда вы получите объект множества объектов... и тогда в функцио боработчик "success" надо будет перебирать ответ "resp"... (тут я не совсем понял вам ответ должен придти с одним объектом или смножеством)
выше код JS перебор объекта содержащего много других объектов
1
|
0 / 0 / 2
Регистрация: 10.02.2013
Сообщений: 66
|
|
17.10.2014, 13:50 [ТС] | 19 |
А как будет лучше (я про множество объектов). Собирался в $ перебрать объекты циклом. А если одним объектом?
0
|
Develo0per
|
|
17.10.2014, 13:52 | 20 |
Сообщение было отмечено CplplNoob как решение
Решение
CplplNoob, лучше всегда чем меньше информации передавать и обрабатывать тем быстрее всё происходит...
но всё зависит от условий и логики проекта...
1
|
17.10.2014, 13:52 | |
17.10.2014, 13:52 | |
Помогаю со студенческими работами здесь
20
Обьект в динамике Задача по динамике PaintBox в динамике Задача по динамике Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |