Пользовательский URL с формой - PullRequest
1 голос
/ 22 февраля 2012

Я работаю над codeigniter, и у меня есть строка поиска, которую я хочу сопоставить с классом поиска в контроллере.URL в настоящее время search/searchterm.Я хочу создать форму, которая придерживается этого и по сути просто взять все, что находится в форме, и передать его по URL.Я пытался просто выполнить перемещение javascript при отправке следующим образом:

document.location.href= "<?= base_url() ?>" + document.forms["searchbox"]["search"].value

, но, похоже, это не работает.Что вы, ребята, рекомендуете как лучшее для чего-то подобного?Я уверен, что тонны людей требуют чего-то похожего на то, что я хочу в своих проектах.

Ответы [ 2 ]

3 голосов
/ 22 февраля 2012

Вот еще один пример.Это действительный документ HTML и поиск в Google, что вы вводите в поле поиска.Работает в FF10, IE8, Chrome 17 и Opera 11.61.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Search</title>
    <script type="text/javascript">
        window.onload = function(){
            var form = document.getElementById("form1");
            form.onsubmit = function(){
                var searchText = document.getElementById("searchText");
                window.location = "http://www.google.com/search?q=" + searchText.value;
                return false;
            };          
        };
    </script>
</head>
<body>
    <form id="form1" method="post" action="">
        <div>
            <label for="searchText">Search:</label>
            <input type="text" id="searchText" name="searchText" />
            <input type="submit" value="Click" />
        </div>
    </form>
</body>
</html>
0 голосов
/ 22 февраля 2012

Это сработало бы, если бы оно не было внутри формы, чтобы сделать это внутри формы, вам нужно установить событие onsubmit, чтобы установить соответствующее действие для формы.

Вот простой рабочий пример:

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
    <script type="text/javascript">
        function foo() {
            document.forms["searchbox"].action= window.location.href+"/" + document.forms["searchbox"]["search"].value; 
            return true; 
        }
    </script>
</head>
<body>
    <form  id="searchbox" onsubmit="foo()" > 
        <input type="text" id="search" />
        <input type="submit" />
    </form>
</body>
</html>
...