Перенос значения формы на другие страницы с помощью PHP или JS - PullRequest
2 голосов
/ 21 февраля 2011

У меня есть форма на домашней странице сайта, используемая в качестве включения, которая запрашивает «Введите свой почтовый индекс», и с помощью простых операторов if в файле PHP она показывает предпочтительное местоположение (как указано клиентом).

При отправке часть местоположения просто использует функцию $ _POST, и с некоторыми простыми, если еще, местоположениями отображаются.

Проблема, с которой я столкнулся, заключается в переносе этого значения на другие страницы.,После того, как почтовый индекс введен и результат показан, этот результат необходимо перенести на другие страницы, но мне не трудно это выяснить.

/ Я добавил ссылку- * /

http://www.subigya.com/stackoverflow/zipcode

Файлы:

http://www.subigya.com/stackoverflow/zipcode/zipcode.zip

Сейчас я осознаю некоторые другие проблемы и не могупросто запустите сеансы, я не знаю почему.

Ответы [ 3 ]

3 голосов
/ 21 февраля 2011

POST и GET переносятся только на страницу, к которой вы запрашиваете. session_start () создает сеанс или возобновляет текущий сеанс на основе идентификатора сеанса, переданного с помощью запроса GET или POST или с помощью файла cookie.

Если почтовый индекс у вас действительно есть, вы можете просто загрузить его на следующей странице с помощью $myzip = $_POST['zipcode'];

чтобы сделать это с сеансом, вы должны:

session_start();

в верхней части страниц и установите переменную w / $_SESSION['zipcode'] = 'myzipcode'; или для получения значения $myzip = $_SESSION['zipcode'];

PHP-сессия

Обновление с вашим текущим кодом в process.php:

<?php
    session_start();
    if(count($_POST)>0)    
    {       
        $zip = $_POST['zipcode'];
        $_SESSION['zipcode'] = $zip;
    } else if(isset($_SESSION['zipcode']))
        $zip = $_SESSION['zipcode'];
    echo 'Current zipcode in session: ' . $_SESSION['zipcode'] . PHP_EOL; 
    if ($zip=="00000"){
        echo'
            <div id="result1" class="zipcodeResult">
                <p><span class="locationName yellow">Location Name</span><br />
                Address 1<br />
                City, Texas 77025<br />
                888.88.8888<br />
                GM, <span class="underline">John Quest</span><br /><br />
                <a href="#" target="_blank">Menu</a> | <a href="#" target="_blank">Catering</a> | <a href="#">Private Dining</a><br />
                <a href="#" target="_blank">Take Out</a> | <a href="#">Map &amp; Hours</a><br /><br />
                <a href="search.php" class="backtoSearch">Change My Location</a></p>
            </div>';
    }else {
        unset($_SESSION['zipcode']); 
        echo '
            <div id="result6" class="zipcodeResult">
                <p><span class="locationName yellow">Unrecognized Zip Code</span><br />
                The zip code you have provided <br />
                is out of range. <br /><br />
                We primarily serve <br />
                the greater Houston area <br />
                in the state of Texas.<br /><br />
                <a href="search.php" class="backtoSearch"> Click here to enter <br />
                another zip code.</a></p>
            </div>';
    }
?>

Вот лишь простая модификация вашего существующего process.php. Я добавил сессию и в основном сохраняю введенный почтовый индекс в переменную сессии $_SESSION['zipcode'];. Каждый раз, когда пользователь вводит почтовый индекс в process.php, он будет отображать то, что помещено в почтовый индекс var сессии. Поскольку у вас есть это в iframe, чтобы увидеть, работает ли сессия, просто нажмите на ссылку, которая у вас есть, и которая должна указывать на себя. Если вы используете GET или POST, почтовый индекс Session var не будет отображаться, но будет, если вы используете Session. Надеюсь, это поможет.

0 голосов
/ 21 февраля 2011

Если вам нужен почтовый индекс только на данный момент, и вам не нужно, чтобы он сохранялся для пользователя, то вы можете использовать сеанс, чтобы сохранить его для всего сеанса.

Вы также можете использовать GET (добавив почтовый индекс в строку запроса), если вы переходите с одной страницы на другую.Это подходит, если вам нужно носить его с собой при минимальном количестве страниц, и у вас не так много вещей, которые можно носить с собой.

POST - это еще один способ сделать это, и в этом случае у вас будетиспользовать межстраничное размещение.

Если вы считаете, что данные должны быть сохранены в предпочтениях пользователя для будущего использования, лучше всего поместить их в профиль пользователя и использовать их.

Использование сеанса или сохранение его в профиле пользователя имеет одно преимущество: вы можете использовать его на любой странице сайта.Вам не нужно явно носить его с собой.Но для POST и GET вам необходимо явно перенести данные на другую страницу.Это может потребовать некоторого управления.

0 голосов
/ 21 февраля 2011

С помощью PHP существует несколько способов передачи информации с одной страницы на другую

1) Сеансы (http://no2.php.net/manual/en/book.session.php)

На одной странице:

$_SESSION['someKey'] = 'someValue';` 

На другой странице:

echo $_SESSION['someKey'];

Чтобы сеансы работали, вам нужно запустить session_start(); вверху обеих страниц (и действительно, на каждой странице, где сеанс должен существовать).

2) POST (http://www.php.net/manual/en/reserved.variables.post.php)

3) GET (http://www.php.net/manual/en/reserved.variables.get.php)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...