Вопрос № 133561: Здравствуйте, уважаемые эксперты.
Имеется форма ввода данных в БД. После нажатия "сохранить" осуществляется переход на другую страницу. Хотелось бы на этой странице разместить кнопку "назад", причем, чтобы работало это не как ...Вопрос № 133598: Здраствуйте.
Как мне витянуть значение с джава скрипт переменной в пхп...Вопрос № 133707: Добрый день уважаемые эксперты!
Помогите пожалуйста решить проблему.
Имеется таблица МЕНЮ с полями 'ID', 'NAME' (название меню), 'RODITEL' (название родительской категории), 'INDEX' (название корневой категории). А проблема заключается в...
Вопрос № 133.561
Здравствуйте, уважаемые эксперты.
Имеется форма ввода данных в БД. После нажатия "сохранить" осуществляется переход на другую страницу. Хотелось бы на этой странице разместить кнопку "назад", причем, чтобы работало это не как простой переход, а как в браузере - т.е. все заполненные формы отображались (ну к примеру если данные были введены неверно и надо что-то поправить, а в БД это естественно еще не записалось - чтобы не вводить все заново).
Отвечает: Иван Сергеевич
Здравствуйте, Наумов Сергей Александрович / snov!
Поскольку все данные формы передаются в массивах $_GET и $_POST, ничто не мешает их передать обратно на страницу, например так:
<form action='backpage.php' method='post'>
<input type='hidden' name='login' value='somelogin' />
<input type='hidden' name='text' value='sometext' />
<input type=submit value='Назад'>
</form>
Однако это не очень хороший способ, т.к. мы передаем туда/обратно лишние данные. Запоминать их в сессиях или в Cookies по-моему тоже не совсем верно. В идеале необходимо делать проверку корректности введенных данных на стороне клиента, т.е. в JavaScript браузера. Если все правильно, то переходим к скрипту занесения в БД. Иначе просто выводим сообщение об ошибке, не перегружая страницу. Я подобные вещи реализовывал с помощью AJAX'а.
Ответ отправил: Иван Сергеевич (статус: 9-ый класс)
Ответ отправлен: 22.04.2008, 12:03 Оценка за ответ: 5
Вопрос № 133.598
Здраствуйте.
Как мне витянуть значение с джава скрипт переменной в пхп
Отправлен: 22.04.2008, 14:29
Вопрос задал: Tmishka (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Иван Сергеевич
Здравствуйте, Tmishka!
Не забудьте, что пхп - серверная сторона скрипта, т.е. именно он и формирует содержимое страницы, в том числе и javascript. Таким образом, когда начинает работу функция JS, страница УЖЕ сформирована и php отработал.
Если Вы хотите вызвать дополнительный скрипт и передать ему значения переменных JavaScript, используйте GET и POST-переменные. Например, можно перенаправить страницу на другой URL (location.href='newpage.php?a=1&b=2'), а можно выполнять асинхронные запросы к серверным скриптам посредством Ajax'а. Вопрос в том, какую задачу Вы хотите выполнить.
Ответ отправил: Иван Сергеевич (статус: 9-ый класс)
Ответ отправлен: 22.04.2008, 14:37 Оценка за ответ: 5 Комментарий оценки: В принципе, вариант....
Вопрос № 133.707
Добрый день уважаемые эксперты!
Помогите пожалуйста решить проблему.
Имеется таблица МЕНЮ с полями 'ID', 'NAME' (название меню), 'RODITEL' (название родительской категории), 'INDEX' (название корневой категории). А проблема заключается в следующем: необходимо вывести все данные на страницу в древовидном представлении.
Например:
Категория 1
Категория 1.1
Категория 1.2
Категория 1.2.1
Категория 2
... и т.д.
Подскажите как правильно и наиболее эффективно составить запрос.
Отправлен: 23.04.2008, 01:15
Вопрос задал: Armaniden (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Иван Сергеевич
Здравствуйте, Armaniden!
1. Обычно не имеет смысла загружать все дерево целиком - только определенные уровни (обычно это собственно корневой узел дерева и его непосредственные потомки). А уже по щелчку на каком-то узле происходит подгрузка дочерних ветвей данного узла (опять-таки только непосредственных потомков) и т.д. В итоге в один момент времени происходит только один запрос вида "SELECT * FROM MENU WHERE RODITEL=".$N
Если все же надо отобразить все дерево, то придется делать рекурсивный обход дерева, т.е. в цикле по узлам уровня N выполнять загрузку дочерних ветвей (уровень N+1) каждого из этих узлов.
2. Неоднократно рекомендовал и буду рекомендовать прочитать статью:
http://dev.mysql.com/tech-resources/articles/hierarchical-data.html
Она на английском, но полностью описывает структуру иерархических таблиц. Там два основных вида деревьев, один из них предложен Вами. В случае больших объемов данных лучше использовать т.н. Nested Set Model - второй тип. В статье подробно описаны необходимые запросы для выборки данных из дерева.
3. В Вашем примере нет необходимости хранить ссылку на корневую директорию, т.к. она известна и так - это узел, у которого RODITEL=NULL. Не стоит дублировать информацию.
Ответ отправил: Иван Сергеевич (статус: 9-ый класс)
Ответ отправлен: 23.04.2008, 01:42 Оценка за ответ: 4 Комментарий оценки: Спасибо за ссылку, но очень нужен был готовый скрипт запроса.
Отвечает: Tmishka
Здравствуйте, Armaniden!
предлагаю немножко другую структуру
Ответ отправил: Tmishka (статус: 1-ый класс)
Ответ отправлен: 23.04.2008, 02:45 Оценка за ответ: 5 Комментарий оценки: Отлично! Огромное спасибо! Это именно то, что я искал.