Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2011, 00:09   #1
xxxsas
Пользователь
 
Регистрация: 16.11.2008
Сообщений: 79
Вопрос Передача массива по ссылке

Здравствуйте. Подскажите, как передать массив по ссылке.

массив
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='.$ppric e_to.'&page='. ($page + 1) .'>Следущая</a>

но тогда параметр metro имеет вид metro=0=знач1

А мне нужно чтобы в ссылке передался такой же массив metro[], как и он и был вначале

Подскажите как это можно сделать?
xxxsas вне форума Ответить с цитированием
Старый 20.06.2011, 01:38   #2
8oOoRPM
Форумчанин
 
Регистрация: 12.11.2010
Сообщений: 146
По умолчанию

попробуйте сериализовать а затем энкодить для ссылки
8oOoRPM вне форума Ответить с цитированием
Старый 20.06.2011, 08:38   #3
kazadai
Новичок
Джуниор
 
Регистрация: 20.06.2011
Сообщений: 2
По умолчанию передача массива через get метод

попробуйте сделать так:
index.php
PHP код:
<?php

$metro
[]="first element";
$metro[]="second element";
$metro[]="third element";
$metro[]="forth element";

$url_metro="";
foreach(
$metro as $key=>$value){
    
$url_metro.="metro[".$key."]=$value&";
}

?>

<a href="index2.php?<? echo $url_metro?>">Пройди по ссылке</a>
а в файле index2.php написать:
PHP код:
<?php

$url_metro
=$_GET['metro'];

print_r($url_metro);

?>

Последний раз редактировалось kazadai; 20.06.2011 в 14:52.
kazadai вне форума Ответить с цитированием
Старый 20.06.2011, 13:50   #4
graymaster
Форумчанин
 
Аватар для graymaster
 
Регистрация: 03.05.2011
Сообщений: 158
По умолчанию

Для kazadai - Метод GET не имеет таких ограничений, не надо никого дезинформировать.

Некоторые браузеры накладывают свои ограничения (IE - 2047 байт, к примеру), плюс - серверная сторона тоже может ограничить общую длину GET (Как и POST, к вашему сведению), например, для апачи это строка в конфиге, например, "LimitRequestLine 4096", которая, соответственно, ограничит отсылаемую строку до 4096 байт. (учтите, что get - urlencoded.)

Для ТС - воспользуйтесь советом 8oOoRPM (serialize), если массив не длинный. Сделайте base64_encode или urlencode, на принимающей стороне соответствующий decode. Если массив длинный (>1024 байта первичный сериалайз), то придётся воспользоваться post, как-то так:
<input type="hidden" value="<?=base64_encode($serialized _array)?>"/> и формой с пост-методом, либо, опять же, с экнодом, каким-нибудь видом ajax. (теоретически, можно аджаксом и бинари-сэйф переслать без потерь на энкодинг, только стандартный XML-Ajax не подойдёт)
graymaster вне форума Ответить с цитированием
Старый 20.06.2011, 14:52   #5
kazadai
Новичок
Джуниор
 
Регистрация: 20.06.2011
Сообщений: 2
По умолчанию

Цитата:
Сообщение от graymaster Посмотреть сообщение
Для kazadai - Метод GET не имеет таких ограничений, не надо никого дезинформировать.
сорри поправил
kazadai вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Произведение элементов массива в функции (передача массива в функцию) (Delphi) Toxa16 Помощь студентам 1 23.04.2011 04:42
Передача массива в метод Sempe4 Общие вопросы .NET 6 16.06.2010 17:25
Си++. Передача массива в функцию. Diamond2107 Помощь студентам 7 03.12.2009 20:15
передача параметра по ссылке veter_s_morya PHP 7 18.10.2009 16:43
передача массива в процедуру Gash Общие вопросы Delphi 1 01.02.2009 00:30