Почему мой поисковый запрос возвращает неопределенное значение, а моя страница заполняется результатами термина? Использование бизнес-катализатора

Я пытаюсь, чтобы поисковый запрос отображался в URL. Что я делаю неправильно?

<form name="catsearchform74255" method="post" onsubmit="processSearch(this)" action="/Default.aspx?SiteSearchID=2248&ID=/search-results&amp;keywords=">
        <div class="input-field search-box">
            <input id="CAT_Search" type="search" name="CAT_Search" placeholder="What are you looking for?" class="white" required="true">
            <label class="label-icon" for="CAT_Search"><i class="material-icons">search</i></label>
            <i class="material-icons">close</i>
        </div>
         <script type="text/javascript">
        function processSearch(form) {
            form.action = form.action + CAT_Search.value;
        }  
    </script>
    </form>

2 ответа

  1. + Изменить method="post" в method="get",
  2. Обновите любой серверный код, ссылающийся на переменные post, чтобы ссылаться на переменные get. Например, в коде PHP измените $_POST["CAT_Search"] в $_GET["CAT_Search"],

Кроме того, правильный формат для required HTML-атрибут это либо required="" или же required="required,

Код

Это можно сделать с помощью JS, вы не можете редактировать метод, так как Business Catalyst ожидает публикацию для этой формы.

Если вы измените форму на следующую:

<form name="catsearchform74255" id="searchForm" method="post" action="/Default.aspx?SiteSearchID=2248&ID=/search-results&amp;keywords=">
    <div class="search-box">
        <input class="cat_textbox_small" type="text" name="CAT_Search" id="CAT_Search">
        <input id="submitForm" onclick="submitFormScript()" type="button" class="cat_button" value="Search">
    </div>
</form>

и затем добавьте следующий jQuery:

function submitFormScript() {
    var searchAction = $("#searchForm").attr("action");
    searchAction = searchAction + $("#CAT_Search").val();
    $("#searchForm").attr("action", searchAction);
    $("#searchForm").submit();
}

объяснение

Добавив идентификаторы в поля формы, а затем type="submit" от кнопки ввода мы можем отредактировать действие формы, прежде чем отправить форму.

В JS мы получаем действие формы, добавляем значение поля поиска (ввод пользователя) и затем возвращаем его обратно в форму. action приписывать. После этого у нас есть URL-адрес, который мы хотим отправить на следующую страницу, чтобы мы могли отправить форму.

Другие вопросы по тегам