[help] Передача определенного элемента массива через строку URL (методом GET)

Тема в разделе "PHP", создана пользователем HatoL, 14 июл 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. HatoL

    HatoL

    Регистр.:
    5 фев 2008
    Сообщения:
    206
    Симпатии:
    36
    Как это осуществить? Допустим у меня есть массив:

    $txt[0] = 'asdsad'
    $txt[1] = 'asdasdasd'

    И мне надо передать через строку URL элемент $txt[0] (по идее должно быть http://sitename.ru/index.php?txt[0]=asdsd, но не работает)

    И как потом прочитать эти данные ? $_GET['txt'][0] ?
     
  2. System777

    System777 Создатель

    Регистр.:
    20 апр 2008
    Сообщения:
    30
    Симпатии:
    13
    Проверил на локалхосте через три браузера - приведённый Вами вариант полностью работает (т.е. даже для GET).

    Похожим образом передаст строку и HTML-форма (у которой можно ставить как GET, так и POST методом, а input-поля называть типа txt[value]);

    Да, это тоже правильный вариант.

    Единственное - у меня есть подозрение, что в некоторых версиях PHP возможно есть разница между индексом просто [0] (числовым) и ['0'] (символьным).

    Точно не скажу какой именно вариант выдаёт такая передача параметров, но отслеживать данные лучше всего так:

    PHP:
    print_r ($_GET);
    Также может быть иногда придётся предварительно подготовить URL с помощью urlencode () ;)
     
    HatoL нравится это.
  3. HatoL

    HatoL

    Регистр.:
    5 фев 2008
    Сообщения:
    206
    Симпатии:
    36
    хм, действительно работает, я просто забыл точку с запятой в конце строчки добавить :) И через форму тоже все передается, только браузер преобразовывает квадратные скобки в коды со знаком процента. Когда вручную пишешь $txt[0]=asdasd, то никаких преобразований не выполняется, а вот через форму да

    С другой стороны вопрос: а стоит ли использовать массивы для такой передачи данных ?
     
  4. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    Ну обычно массивы используются при группе чекбоксов
    <input type="checkbox" name="checkbox[]" value="1" /> 1
    <input type="checkbox" name="checkbox[]" value="2" /> 2
    <input type="checkbox" name="checkbox[]" value="3" /> 3
    и т.д. смысл думаю понятен

    при сабмите формы, в массиве $checkbox будут переданные значения, очень удобно..
     
  5. HatoL

    HatoL

    Регистр.:
    5 фев 2008
    Сообщения:
    206
    Симпатии:
    36
    а ну ясна, у меня сценарий простой, там только текстовое поле ввода есть )))
     
Статус темы:
Закрыта.