RFpro.ru: Программирование на PHP

  Все выпуски  

RFpro.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 720
∙ повысить рейтинг »
Марк Крейн
Статус: 5-й класс
Рейтинг: 21
∙ повысить рейтинг »
Evgen aka Chuma
Статус: 5-й класс
Рейтинг: 19
∙ повысить рейтинг »

∙ PHP / Perl / Python

Номер выпуска:1294
Дата выхода:21.05.2017, 11:15
Администратор рассылки:Коцюрбенко Алексей aka Жерар (Мастер-Эксперт)
Подписчиков / экспертов:18 / 13
Вопросов / ответов:3 / 8

Консультация # 50929: Есть страничка, в которой находится куча (большая) форм. Формы выпадающих меню берут данные из БД mysql. 1. Как можно связать между собой формы "ГОСУДАРСТВО" и "ГОРОД" так, чтобы при выборе определенного государства в форму "ГОРОД" выводились только те города, которые соответствуют этому государству. 2. При наж...
Консультация # 171728: Всем привет! Знаю, что немного не в php, но соответствующей темы не нашёл. Мне нужно строку типа /kolobok/2/10 преобразовать на моём сайте в строку /?article=kolobok&chapter=2#v10 Здесь вызывает самый большой вопрос последнее число и его преобразование в ссылку на якорь. Судя по всему это нужно делать в файле .htaccess, ...
Консультация # 65330: Здравствуйте! Помогите, php запутал кодировки. windows, apache в текстовом файле виндовая кодировка, такая же в ie, апач ничего не перекодирует (вроде бы, по крайней мере за ним такого раньше не замечалось). Выполняю ниже приведённый скрипт, в результате получаю неизвестные символы. Конвертация файла не помогла перебрал dos koy8 iso mac...

Консультация # 50929:

Есть страничка, в которой находится куча (большая) форм. Формы выпадающих меню берут данные из БД mysql.
1. Как можно связать между собой формы "ГОСУДАРСТВО" и "ГОРОД" так, чтобы при выборе определенного государства в форму "ГОРОД" выводились только те города, которые соответствуют этому государству.
2. При нажатии Кнопки "ОТПРАВИТЬ" все эти данные передаются в отдельную таблицу БД с соответствующими полями.
3. Каким образом связывается определенное поле формы (например Год выпуска) с таблицей auto_year. Где именно это указывается?
4. Есть ли такая возможность, как "мультиформа", т. е. все данные содержатся в одной форме (а не каждый раз писать <form name="form2" method="post" action="">) Или так делать нельзя.

БУДУ РАД ВСЕМ ОТВЕТАМ, ОСОБЕННО ТАКИМ, КОТОРЫЕ РАССЧИТАНЫ НА ЧАЙНИКОВ... ПОМОГИТЕ ПОЖАЛУЙСТА...

Заранее спасибо!

Дата отправки: 02.08.2006, 18:28
Вопрос задал: Сычев Роман
Всего ответов: 5
Страница онлайн-консультации »


Консультирует Physicist:

Здравствуйте, Сычев Роман!

1. Если стран и городов очень много - лучшим выходом будет использование технологии AJAX (или просто асинхронного JavaScript, без XML). Поищи в интернете - ссылок по этой теме (с примерами) в последнее время достаточно. Получив данные с сервера, нужно в innerHTML обрамляющего элемента вывести <select> со всеми полученными <option> (на JavaScript, в цикле)
2. Это не вопрос :-)
3. Все зависит от того, что и как ты хочешь записывать в БД. Почитай документацию с примерами по командам INSERT INTO, UPDATE, SELECT, WHERE (последнее - не команда). Тщательно продумай структуру таблиц.
4. Так и делают. Когда много форм - легко запутаться. Можно в начале страницы (после <body>) написать
<form method="post" action="">
а перед </body>, соответственно </form> - и всё, можно жить спокойно.

Консультировал: Physicist
Дата отправки: 02.08.2006, 18:55
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует PVS:

Здравствуйте, Сычев Роман!
4. Если формы одинаковые, то можно писать 3. Никак не связывается, просто при формировании формы Вы берете данные для выпадающего списка или radiobutton\'ов из нужной таблицы
2. Если надо записать все полученные данные в таблицу используйте
mysql_query("insert into table_name values(...[здесь переменные через запятую, строки и дата в кавычках, числа - как есть]....)");
1. Если не использовать JavaScript, а только PHP, то надо позволить пользователю выбрать государство, передать его выбор на сервер и сформировать новую форму выбора в которой будут города только нужного государства mysql_query("select city_name from city where country=\'$selected_country\'");

Чтобы лучше разобратся с SQL\'ями, которые судя по 1 и 2 Вам все-тки будут нужны найдите какой-нибудь учебник. Если получится постарайтесь найти в Internet\'e "Понимание SQL" М. Грубера - очень доходчиво написаная книга.

Консультировал: PVS
Дата отправки: 02.08.2006, 18:57
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Ерёмин Андрей:

Здравствуйте, Сычев Роман!
1. Смотрите пример, созданный мной, в приложении. Это можно реализовать на JavaScript. Правда немного неудобно - каждый список нужно создавать в отдельности, но всё равно вариант. Ещё одна особенность - это код почему-то не сработал у меня в IE... Хотя в Opera всё прекрасно.
3. Когда вы передаёте данные из формы в php-скрипт, они становятся доступны по соответствующим именам переменных. Например, если текстовое поле в форме имеет имя year, то в php-скрипте это значение будет в $year. А дальше - выполняются все необходимые операции (например, добавление в таблицу базы данных).
4. Вопрос непонятен... В любой форме вы можете размещать сколько угодно много компонент.

Приложение:

Консультировал: Ерёмин Андрей
Дата отправки: 02.08.2006, 18:59
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Nik-VB:

Здравствуйте, Сычев Роман!
1) Для каждого государства нужен свой ID в таблице, а в таблице с городами у каждого указываем ID государства. И когда надо, выбираем по этому полю.
2) При нажатии "Отправить" данные передаются в скрипт на обработку... Именно скрипт и выполняет все действия с БД. Можно указывать скрытые параметры в форме, по ним скрипт может определить, что надо делать.
3) Варианты для выбора должны заполнятся в PHP-скрипте. Просто выбираем из MySQL-базы нужные варианты и выводим.
4) В одну форму можно вставить сколько угодно полей, но тогда и заполнять всю форму нужно будет разом (все поля заполняются, а потом вся форма обрабатывается).
Если Вам нужно заполнять все поля без перезагрузки страницы (то есть выбираем страну и сразу грузятся города), то это можно сделать с помощью JavaScript. Так же можно сделать и проверку правильности данных. Подробности здесь: http://www.codenet.ru/cat/Languages/JavaScript/AJAX/
Про реализацию на PHP - см. приложение.
Удачи!

Приложение:

Консультировал: Nik-VB
Дата отправки: 02.08.2006, 19:49
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Козлов Алексей Сергеевич:

Здравствуйте, Сычев Роман!
1. Если писать на чистом PHP, то в пределах одного запроса этого не сделать. Т.е., или придется делать пошаговый выбор, или заносить это в переменные и выводить потом с помощью JavaScript. Есть еще такой вариант, что при выборе страны JavaScript передает на сервер код страны и выводится обновленая страница с перечнем городов данного государства. Но некоторые пользователи отключают поддержку Java, так что могут возникнуть проблемы.

2. После передачи формы на сервер мы можем обратиться к переданным данным в таком виде:
$name = $_REQUEST[\'name\']
где NAME это имя поля, в твоем случае это SELECT, SELECT2, RadioGroup1 и т.д.

3. Связывание полученной переменной с некоторым полем таблицы зависит от того, что тебе нужно - вставить или обновить данные. Конкретную реализацию кода необходимо смотреть по месту.

4. Да, все приведенные формы можно свести в одну.

P.S. Есть одно замечание по использованию CheckBox\'а. Передача значения на сервер произойдет только если он будет ВЫБРАН (установлен), т.е. в нулевом (сброшенном) состоянии НИЧЕГО передано не будет. Для решения этой проблемы необходимо вместо этого CheckBox\'а вставить код приведенный в приложении. Так же на мой взгляд в качестве значения правильнее использовать не буквы и слова, а \'0\' или \'1\'

Приложение:

Консультировал: Козлов Алексей Сергеевич
Дата отправки: 03.08.2006, 01:27
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 171728:

Всем привет!

Знаю, что немного не в php, но соответствующей темы не нашёл.

Мне нужно строку типа /kolobok/2/10 преобразовать на моём сайте в строку /?article=kolobok&chapter=2#v10

Здесь вызывает самый большой вопрос последнее число и его преобразование в ссылку на якорь.

Судя по всему это нужно делать в файле .htaccess, но в нём символ # - начало комментария, а в php этого уже не сделать.

Дата отправки: 29.08.2009, 18:21
Вопрос задал: Прим Палвер
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Алексей Смуриков:

Здравствуйте, Прим Палвер.
Попробуйте добавить в .htaccess следующие строки:

Приложение:

Консультировал: Алексей Смуриков
Дата отправки: 29.08.2009, 19:36

5
Оно то конечно здорово, но, как я писал, # - начало комментариев в этом файле.
Как его скрыть, чтобы символ обозначал сам себя?
Или я что-то путаю?

-----
Дата оценки: 29.08.2009, 20:13

Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует HookEst:

Здравствуйте, Прим Палвер.
http://httpd.apache.org/docs/trunk/configuring.html#syntax

© Цитата: http://httpd.apache.org/docs/trunk/configuring.html#syntax
Lines that begin with the hash character "#" are considered comments, and are ignored. Comments may not be included on a line after a configuration directive.

т.о. комментариями считаются строки, начинающиеся с #, если же # стоит не вначале строки, то это не комментарий...
RewriteEngine On

RewriteRule (\w+)/(\d+)/(\d+)$ /?article=$1&chapter=$2#v$3

нормально работает. например если $_SERVER["REDIRECT_URL"] у меня "/a/10/20", то $_SERVER["REDIRECT_QUERY_STRING"] у меня "article=a&chapter=10#v20"

другой вопрос, для чего Вам это нужно... если в PHP скриптах у Вас как-то обрабатывается якорь из запроса, тогда все, если же нет, то учтите, что в браузер этот якорь( как и все, сделанное с помощью mod_rewrite ) не попадет... Если же, необходимо, чтобы ссылка менялась и в адресной строке браузера, можно использовать директиву RedirectMatch:
RedirectMatch (\w+)/(\d+)/(\d+)$ http://mysite.ru/index.php?article=$1\&chapter=$2#v$3

здесь замените mysite.ru на адрес Вашего сайта...
Успехов.

Консультировал: HookEst
Дата отправки: 31.08.2009, 06:02

5
Спасибо!
Если использовать RewriteRule для переписывания якоря, то браузер перестанет "двигать" страницу?

-----
Дата оценки: 01.09.2009, 17:15

Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 65330:

Здравствуйте!
Помогите, php запутал кодировки. windows, apache
в текстовом файле виндовая кодировка, такая же в ie, апач ничего не перекодирует (вроде бы, по крайней мере за ним такого раньше не замечалось).
Выполняю ниже приведённый скрипт, в результате получаю неизвестные символы. Конвертация файла не помогла перебрал dos koy8 iso mac. Коректно же вышло лишь при транслите. Может там какая другая кодировка? И как мне нормально считать и вывести виндовую?

Дата отправки: 03.12.2006, 06:28
Вопрос задал: Артём Талипов
Всего ответов: 1
Страница онлайн-консультации »


Консультирует PVS:

Здравствуйте, Артём Талипов!
В Apache должно быть
AddDefaultCharset windows-1251

и в заголовке файла

Консультировал: PVS
Дата отправки: 04.12.2006, 10:51
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное