переменные JavaScript в HTML? - PullRequest
       17

переменные JavaScript в HTML?

0 голосов
/ 24 декабря 2009

вот случай:

У меня есть 2 списка на моем сайте. страна и регион. когда пользователь впервые вводит параметры ВСЕ и ВСЕ. затем он выбирает страну и регион. и я использую jquery bbq для хэширования URL с различными переменными для запоминания уникальных страниц, отображаемых с помощью ajax. например:

webpage#country=1&region=3
webpage#country=2&region=3

Теперь я хочу, чтобы пользователь мог отправить этот URL другому человеку, и браузер отобразит те же списки выбора HTML.

поэтому я придумала решение:

Сначала я хватаю хеш с помощью jquery и превращаю их в куки. тогда у меня есть следующий HTML-код:

<select>
<?php
    while($row = mysqli_fetch_assoc($countries))
    {
                if($row['id'] == $_COOKIE['country'])
                {
                    echo "<option value='" . $row['id'] . "' selected>" . $row['name'] . "</option>";
                }
                else
                {
                    echo "<option value='" . $row['id'] . "'>" . $row['name'] . "</option>";
                }

    }
?>
</select>

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

но проблема в том, что он не работает в Firefox. и в сафари это слишком медленно, чтобы быть показанным. куки создаются после показа html. поэтому мне нужно обновить страницу во второй раз.

просто кажется, что это не очень хорошее решение. и я не хочу, чтобы html отображал все параметры, а затем переходил к выбранному варианту с помощью jquery. затем пользователь видит, что списки внезапно меняются и это ужасно.

Какие у меня варианты здесь? я думаю, что эта проблема пришла в голову многим программистам ajax.

(сайт получил более 2 списков, поэтому я действительно хочу, чтобы это работало)

Ответы [ 2 ]

1 голос
/ 24 декабря 2009

Я не думаю, что куки двигают вас в правильном направлении. Файлы cookie предназначены для запоминания чего-либо ПОСЛЕ первого посещения. Не раньше.

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

webpage?country=1&region=3
webpage?country=2&region=3

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

1 голос
/ 24 декабря 2009

Не уверен с вашими точными требованиями, но вместо файлов cookie вы можете использовать переменные сеанса.

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