массив
metro[] имеет значения знач1, знач2,знач3,...,знач4
$pmetro=metro[];
написал таким образом
$nextpage = '<a href= ./index.php?type=rent&rooms='.$prooms.'&metro='.http_build_query($pmetro).'&pr='.$pprice_one.'&pr2='.$pprice_to.'&page='. ($page + 1) .'>Следущая</a>
но тогда параметр metro имеет вид metro=0=знач1
А мне нужно чтобы в ссылке передался такой же массив metro[], как и он и был вначале
Подскажите как это можно сделать?
Спустя 20 минут, 18 секунд (19.06.2011 - 23:30) Игорь_Vasinsky написал(а):
чёт, я не совсем понял твою конструкцию.
может:
и выходит, что
и т.д
может:
$metro = array("знач1","знач2","знач3");
и выходит, что
$metro[0] = знач1
и т.д
Спустя 9 минут, 1 секунда (19.06.2011 - 23:39) Strannik написал(а):
именно так. но по ссылке передать не могу корректно.
Спустя 8 минут, 55 секунд (19.06.2011 - 23:48) Игорь_Vasinsky написал(а):
так может покажешь по секрету http_build_query() - чё она у тя за массив возращает
Или стой, у тя это массив "несколько разных опций возращает" - чего то одного ? так?
если так - то из массива нужно сформировать строку типа:
знач1,знач2,знач3
Потом считывать GET , разбирать - и работать.
Или стой, у тя это массив "несколько разных опций возращает" - чего то одного ? так?
если так - то из массива нужно сформировать строку типа:
знач1,знач2,знач3
Потом считывать GET , разбирать - и работать.
Спустя 3 минуты, 34 секунды (19.06.2011 - 23:51) Strannik написал(а):
конечно
если одно значение передать, то выходит
metro=0=вднх
а мне нужен такой же массив $metro = array("знач1")
если одно значение передать, то выходит
metro=0=вднх
а мне нужен такой же массив $metro = array("знач1")
Спустя 56 секунд (19.06.2011 - 23:52) Игорь_Vasinsky написал(а):
запутал, покажи весь урл, каким он должен быть
Спустя 4 минуты, 34 секунды (19.06.2011 - 23:57) Strannik написал(а):
$pervpage = '<a href= ./index.php?type=rent&rooms='.$prooms.'&metro='.http_build_query($pmetro).'&pr='.$pprice_one.'&pr2='.$pprice_to.'&page=1>Начало</a>
и на выходе я должен из параметра metro получить массив вида array("знач1","знач2","знач3")
и на выходе я должен из параметра metro получить массив вида array("знач1","знач2","знач3")
Спустя 13 минут, 53 секунды (20.06.2011 - 00:11) Renden написал(а):
Strannik
Покажи код функции http_build_query();
Покажи код функции http_build_query();
Спустя 46 секунд (20.06.2011 - 00:11) Игорь_Vasinsky написал(а):
echo массив даст - array, что то я не въезжаю...
какты в урл с array("знач1","знач2","знач3") будешь работать.
Ты покажи без php - на чистом html какая ссылка должна быть.
какты в урл с array("знач1","знач2","знач3") будешь работать.
Ты покажи без php - на чистом html какая ссылка должна быть.
Спустя 2 минуты, 36 секунд (20.06.2011 - 00:14) Игорь_Vasinsky написал(а):
типа:
Тогда:
./index.php?type=rent&rooms=что то&metro=раз, два, три ....
Тогда:
Цитата |
Или стой, у тя это массив "несколько разных опций возращает" - чего то одного ? так? если так - то из массива нужно сформировать строку типа: знач1,знач2,знач3 Потом считывать GET , разбирать - и работать. |
Спустя 5 минут, 43 секунды (20.06.2011 - 00:20) Renden написал(а):
Игорь_Vasinsky, я тоже так понял.
Strannik Ну получаешь гет и бьешь его.
Strannik Ну получаешь гет и бьешь его.
$metro = explode(",", $_GET['metro']);
print_r($metro);
Спустя 6 минут, 32 секунды (20.06.2011 - 00:26) Игорь_Vasinsky написал(а):
Renden
В том то и дело, у него функция возращает массив, а надо чтоб строку.
т.е. либо вместо формирования массива - создавать строку, либо делать это после создания массива (implode()), не знай как у него там удобней.
В том то и дело, у него функция возращает массив, а надо чтоб строку.
т.е. либо вместо формирования массива - создавать строку, либо делать это после создания массива (implode()), не знай как у него там удобней.
Спустя 7 часов, 40 минут, 46 секунд (20.06.2011 - 08:07) linker написал(а):
Ссылка тут нафиг не нужна, если я правильно понял
$metro = array(1, 2, 3, 4);
$nextpage = '<a href= ./index.php?type=rent&rooms='.$prooms.'&metro[]='.implode('&metro[]=', $metro).'&pr='.$pprice_one.'&pr2='.$pprice_to.'&page='. ($page + 1) .'>Следущая</a>';
Спустя 1 день, 2 часа, 47 минут, 5 секунд (21.06.2011 - 10:54) Strannik написал(а):
linker
возникает ошибка implode(): Invalid arguments passed in ...........
возникает ошибка implode(): Invalid arguments passed in ...........
Спустя 1 минута (21.06.2011 - 10:55) linker написал(а):
$metro должно быть массивом.
Спустя 50 секунд (21.06.2011 - 10:56) Adil написал(а):
А что нельзя сериализовать массив и передать?
Спустя 4 минуты, 13 секунд (21.06.2011 - 11:00) linker написал(а):
А зачем лишняя работа по сериализации/десериализации?
Спустя 1 час, 27 минут, 37 секунд (21.06.2011 - 12:28) Strannik написал(а):
проблема еще в том, что у меня значения могут быть
и когда я делаю
Получаю строку вида
а дальше строка обрезана, почему так?
и как можно решить проблему?
$array=('библиотека имени Горьького', 'бульвар имени толстого')
и когда я делаю
$nextpage = '<a href= ./index.php?type=rent&rooms='.$prooms.'&metro[]='.implode('&metro[]=', $metro).'&pr='.$pprice_one.'&pr2='.$pprice_to.'&page='. ($page + 1) .'>Следущая</a>';
Получаю строку вида
......metro[]=библиотека
а дальше строка обрезана, почему так?
и как можно решить проблему?
Спустя 19 минут, 46 секунд (21.06.2011 - 12:48) linker написал(а):
Strannik
Для каждого значения используй urlencode()
Для каждого значения используй urlencode()
Спустя 14 минут, 33 секунды (21.06.2011 - 13:02) Strannik написал(а):
если я правильно понимаю, нужно сделать так:
но есть проблема:
у меня значения на страницу формирования строки передаются методом $_POST
т.е.
и поэтому применять urlencode к каждому элементу массива я не могу.
а если сделать:
то получим пустое значение, т.е. ссылку вида:
$metro=(urlencode('библиотека имени Горьького'), urlencode('бульвар имени толстого'));
но есть проблема:
у меня значения на страницу формирования строки передаются методом $_POST
т.е.
$metro=$_POST["metro"]
и поэтому применять urlencode к каждому элементу массива я не могу.
а если сделать:
$nextpage = '<a href= ./index.php?type=rent&rooms='.$prooms.'&metro[]='.implode('&metro[]=', urlencode($metro)).'&pr='.$pprice_one.'&pr2='.$pprice_to.'&page='. ($page + 1) .'>Следущая</a>';
то получим пустое значение, т.е. ссылку вида:
......metro[]=
Спустя 6 минут, 23 секунды (21.06.2011 - 13:09) Adil написал(а):
Да уж.. при всем этом сериализация реально выглядит лишней работой=)
Спустя 57 секунд (21.06.2011 - 13:10) linker написал(а):
Ну оберни urlencode($metro) в функцию какую
function arr_urlencode($arr)а вообще считаю некультурным загонять целые текста в GET-запрос.
{
foreach($arr as $key => $value)
$arr[$key] = urlencode($value);
}
implode('&metro[]=', arr_urlencode($metro))
Спустя 28 минут, 6 секунд (21.06.2011 - 13:38) Strannik написал(а):
все равно получается пустое значение((
Спустя 8 минут, 23 секунды (21.06.2011 - 13:46) linker написал(а):
Внимательнее, я тоже могу опечатываться или забыть что-то дописать
function arr_urlencode($arr)
{
foreach($arr as $key => $value)
$arr[$key] = urlencode($value);
return $arr;
}
Спустя 4 минуты, 54 секунды (21.06.2011 - 13:51) Strannik написал(а):
все равно пустое значение может быть я что - то не так пишу?
выдает пустое значение
function arr_urlencode($arr)
{
foreach($arr as $key => $value)
$arr[$key] = urlencode($value);
return $arr;
}
$nextpage = '<a href= ./index.php?type=rent&rooms='.$prooms.'&metro[]='.implode('&metro[]=', arr_urlencode($metro)).'&pr='.$pprice_one.'&pr2='.$pprice_to.'&page='. ($page + 1) .'>Следущая</a>
выдает пустое значение
....metro[]=
Спустя 6 минут, 22 секунды (21.06.2011 - 13:57) linker написал(а):
Strannik
Пустое будет если только ты передаешь пустой массив или вообще не массив.
Пустое будет если только ты передаешь пустой массив или вообще не массив.
Спустя 27 минут, 3 секунды (21.06.2011 - 14:24) linker написал(а):
function arr_urlencode($arr)если тут будет пусто, значит отдаешь в функцию пустой массив или не массив.
{
print_r($arr);
...