Программирование > PHP
одинаковые name в checkbox
Erikson:
Привет, доки. Прошу помощи!
Пытаюсь создать страницу, которая выводит данные по трем городам. Листинг (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.
hanslinger:
Erikson:
Тогда урл получается вида ?section=weather&city%5B%5D=SPb&city%5B%5D=Nerungri&city%5B%5D=Salavat.
html_coder:
Erikson, тогда может стоить рассмотреть примерно такой вариант
<script language="JavaScript" type="text/javascript">
function choose_town (checked, name)
{
var FormElement = document.forms[\'test_form\'];
if(checked)
{
if(FormElement.cities.value.length == 0)
{
FormElement.cities.value+= name;
}
else
{
FormElement.cities.value+= \' \'+name;
}
}
else
{
var pos = FormElement.cities.value.indexOf(name+\' \');
if(pos != -1)
{
FormElement.cities.value = FormElement.cities.value.replace(name+\' \', \'\');
}
else
{
FormElement.cities.value = FormElement.cities.value.replace(name, \'\');
}
}
}
</script>
<form action="" method="GET" name = "test_form">
<input type="checkbox" value="Moscow" onClick = "choose_town(this.checked, this.value)"> Moscow
<input type="checkbox" value="Newyork" onClick = "choose_town(this.checked, this.value)"> Newyork
<input type="checkbox" value="London" onClick = "choose_town(this.checked, this.value)"> London
<input type="hidden" name="cities" value="">
<input type="submit" value="Отправить">
</form>
Erikson:
Так работает. Значит одним PHP не реализовать?
Навигация
Перейти к полной версии