Как использовать jquery autosuggest для перенаправления на другой URL-адрес?

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

Я разрабатываю сайт, на котором я хотел бы иметь поле, в котором пользователи могут вводить состояние, оно автоматически предлагает возможные состояния, и когда пользователь выбирает состояние, оно перенаправляет страницу на другой URL-адрес. Итак: если они выбирают «Аляска, AK», они перенаправляются на «http://.../states/alaska».

Из всего, что я просмотрел, автоподсказка удаленного источника jquery UI, кажется, является ближе всего к тому, что мне нужно. Мне понравилось, что мне не нужно было просматривать базу данных, значения находятся в файле «search.php».

В файле search.php значения вставляются как:

$q = strtolower($_GET["term"]);
if (!$q) return;
$items = array(
"Great Bittern"=>"Botaurus stellaris",
"Little Grebe"=>"Tachybaptus ruficollis",
"Black-necked Grebe"=>"Podiceps nigricollis",
"Little Bittern"=>"Ixobrychus minutus",
...

Я проверил, что могу изменить значения здесь на:

$q = strtolower($_GET["term"]);
if (!$q) return;
$items = array(
"Alabama, AL"=>"http://.../states/alabama",
"Alaksa, AK"=>"http://.../states/alaska",
"Arizona, AZ"=>"http://.../states/arizona",
...

В HTML код такой:

$(function() {
        function log( message ) {
            $( "<div/>" ).text( message ).prependTo( "#log" );
            $( "#log" ).scrollTop( 0 );
        }

        $( "#birds" ).autocomplete({
            source: "search.php",
            minLength: 2,
            select: function( event, ui ) {
                log( ui.item ?
                    "Selected: " + ui.item.value + " aka " + ui.item.id :
                    "Nothing selected, input was " + this.value );
            }
        });
    });

Мне не нужно, чтобы он отображал журнал, как мне переформатировать его, чтобы страница перенаправлялась при выборе или когда пользователь нажимает кнопку отправки?


person lbweb    schedule 03.02.2012    source источник
comment
кстати, кажется, что есть много связанных файлов, которые нужно прикрепить, чтобы это работало, поэтому, если у кого-то есть что-то меньшее, сообщите.   -  person lbweb    schedule 03.02.2012


Ответы (1)


Вам нужно будет использовать один из этих

window.location.href = "new link";

or

window.location.replace("new link");

Может быть, как это

select: function( event, ui ) {
                log( ui.item ?
                    window.location.href = ui.item.value :
                    "Nothing selected, input was " + this.value );
            }
person Mike    schedule 03.02.2012
comment
хорошо, что сработало. Спасибо. Теперь, когда я собираю это в производство, я понимаю, что для того, чтобы собрать все это вместе, требуется 9 связывающих файлов и 41 КБ. Кажется немного экстремальным. У кого-нибудь есть альтернативы? - person lbweb; 03.02.2012
comment
Если у вас есть, скажем, 9 разных ответов, вы можете поместить их в базу данных, а затем создать div на своей странице, куда вы загружаете результат на основе выбора пользователя. Однако для этого нужен ajax. - person Mike; 03.02.2012
comment
Я смотрел на эти типы сценариев. Моя проблема заключалась в том, что все они использовали только одно значение для текста предложения и идентификатора. Мне не нужен был идентификатор, мне нужен был текст предложения и поле URL. Проблема в том, что я вообще не знаю синтаксиса MySQL/JSON/AJAX, поэтому выяснить, как его модифицировать, было для меня невозможно, и не было документации по сценариям для начинающих. - person lbweb; 03.02.2012