Forum Webscript.Ru

Программирование => PHP => Тема начата: Erikson от 17 Февраля 2007, 05:39:25

Название: одинаковые name в checkbox
Отправлено: Erikson от 17 Февраля 2007, 05:39:25
Привет, доки. Прошу помощи!
Пытаюсь создать страницу, которая выводит данные по трем городам. Листинг (weather_info.php):

if (!IsSet($_GET[\'city\'])) {
   print("Выберите город:\\n
");
   print("
\\n");
   print("\\n");
   print(" Санкт-Петербург
\\n");
   print(" Нерюнгри
\\n");
   print(" Салават
\\n");
   print("\\n");
   print("
\\n");
} else {
   if (IsSet($_GET[\'city\']) && ($_GET[\'city\'] == (("SPb") or ("Nerungri") or ("Salavat")))) {
      if ($_GET[\'city\'] == "SPb") {
         print("Санкт-Петербург!!!!!!");
      }
      if ($_GET[\'city\'] == "Nerungri") {
         print("Нерюнгри!!!!!!");
      }
      if ($_GET[\'city\'] == "Salavat") {
         print("Салават!!!!!!");
      }
   }
}

Это часть сайта. Должна выводить инфу о погоде. Смысл в том, что когда URL выглядит ?section=weather должен выводиться список городов (и выводится). Когда выбираешь город (URL ?section=weather&city=SPb) то выводится инфа о Санкт-Петербурге, но когда выбираешь несколько городов, то выводится инфа о последнем выбранном городе. Судя по урлу (?section=weather&city=SPb&city=Nerungri&city=Salavat) так и должно быть.

Так как же сделать правильно, чтоб при выборе нескольких городов выводилась инфа обо всех выбранных городах? Или хотябы как привести урл к нормальной форме, типа ?section=weather&city=SPb+Nerungri+Salavat или ?section=weather&city=SPb,Nerungri,Salavat? Не хотелось бы заморачиваться с CGI, а решить все посредством PHP.
Название: одинаковые name в checkbox
Отправлено: hanslinger от 17 Февраля 2007, 06:02:05
Название: одинаковые name в checkbox
Отправлено: Erikson от 17 Февраля 2007, 15:04:08
Тогда урл получается вида ?section=weather&city%5B%5D=SPb&city%5B%5D=Nerungri&city%5B%5D=Salavat.
Название: одинаковые name в checkbox
Отправлено: html_coder от 17 Февраля 2007, 16:53:13
Erikson, тогда может стоить рассмотреть примерно такой вариант




Moscow

Newyork

London




Название: одинаковые name в checkbox
Отправлено: Erikson от 17 Февраля 2007, 17:24:45
Так работает. Значит одним PHP не реализовать?
Название: одинаковые name в checkbox
Отправлено: html_coder от 17 Февраля 2007, 21:18:28
Цитировать
Erikson:
Значит одним PHP не реализовать?


Ну а чем тебе не подходит способ от hanslinger?

Если ты хочешь красивые урлы, то нет! А что за требование такое одним PHP?
Название: одинаковые name в checkbox
Отправлено: Erikson от 18 Февраля 2007, 01:02:22
Цитировать
html_coder:
Ну а чем тебе не подходит способ от hanslinger?


Ну я объяснял выше, что урл получается совсем не корректный.

Цитировать
html_coder:
Если ты хочешь красивые урлы, то нет! А что за требование такое одним PHP?


Изучаю PHP. Пытаюсь узнать возможности. А тема возникла при написании конкретного сайта, зашел в ступор. Обычно сам разбирался, а тут и книги не помогли. :-)
Название: одинаковые name в checkbox
Отправлено: andymc от 18 Февраля 2007, 03:25:32
УРЛ можно составлять так
?section=weather&SPb&Nerungri&Salavat ...
а потом проверять, какие ключи есть в массиве GET
Название: одинаковые name в checkbox
Отправлено: hanslinger от 18 Февраля 2007, 19:17:41
Если хочешь красивые урлы, не используй в форме GET, вот и все.
Название: одинаковые name в checkbox
Отправлено: Erikson от 20 Февраля 2007, 01:12:47
Цитировать
hanslinger:
Если хочешь красивые урлы, не используй в форме GET, вот и все.


post не позволит сохранять ссылки на страницы. Или я не прав?
Название: одинаковые name в checkbox
Отправлено: brainkiller от 20 Февраля 2007, 09:47:24
А тупо поменять имена чекбоксов, чтобы они были разными, а уже на стороне сервера пройтись по всему их множеству и проверить, какие из них заданы?

city1, city2 etc в форме

и проверяем $city$i в цикле? :)