Передача значения между страницами. Что я делаю неправильно? - PullRequest
0 голосов
/ 28 июля 2011

У меня есть 2 страницы, одна называется details.page, а другая - maps.page

На первой странице я объявил поисковый ввод примерно так:

  <form method="get" id="form-search" data-ajax="true" action="maps.page">
            <input type="search" name="search" id="search" value=""/>
        </form>

И на моей второй странице maps.page я объявил так:

  <form action="maps.page">
        <input type="search" name="search" id="search-field" value=""/>
        </form>

Теперь я предполагал, что когда я наберу что-то в строке поиска со своей первой страницы и нажму клавишу ввода, панель поиска на maps.page будет заполнена ранее введенным значением.

Я правильно перенаправлен, но панель поиска пуста.

Что я делаю не так?

Заранее спасибо за помощь.

РЕДАКТИРОВАТЬ : Кроме того, в URL-адресе я вижу, что он работает, потому что могу видеть, что я искал в URL-адресе, например: /maps.page?search=something

Ответы [ 3 ]

1 голос
/ 28 июля 2011

Я предполагал, что когда я наберу что-то в строке поиска со своей первой страницы и нажму клавишу ввода, панель поиска на maps.page будет заполнена ранее введенным значением.

Это то, что вы делаете неправильно.

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

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

1 голос
/ 28 июля 2011

У вас есть несколько вариантов, как это сделать, не используя серверный скрипт.

1) Вы можете установить метод формы на GET, чтобы переменные передавались в адресную строку, а затем захватывать их с другой стороны, используя скрипт, подобный приведенному ниже (это фактически читает адрес, а затем анализирует его для переменных ). После этого вы можете поместить это значение в поле ввода.

var getVars = new Array();
var locvartemp = ( window.location.href.indexOf( "?" ) + 1 ) ? window.location.href.substr( window.location.href.indexOf( "?" ) + 1 ) : "";
locvartemp = locvartemp.split( "&" );
for( var x = 0; x < locvartemp.length; x++ ) {
    var lvTempVar = locvartemp[x].split( "=" );
    getVars[ unescape( lvTempVar[0] ) ] = unescape( lvTempVar[1] );
}

2) Вы можете использовать плагин cookie jQuery, чтобы установить значение в виде файла cookie перед отправкой формы, а затем прочитать его на другой стороне и установить его в поле ввода.

jQuery.cookie("myCookie", document.formName.myFieldName.value);

Дайте мне знать, если вам нужно больше деталей.

1 голос
/ 28 июля 2011

Значение не заполняется автоматически.Вам нужно распечатать его со стороны сервера.

  <form action="maps.page">
        <input type="search" name="search" id="search-field" value="<insert value>"/>
  </form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...