У меня есть веб-страница html/php (файл называется searchresults.php), который импортирует jquery mobile. При входе на страницу, URL-адрес, как правило, что-то вроде«onclick» кнопки во всплывающем меню работает только один раз
www.domain.com/searchresults.php?&sort="off"&max="5"
В этом примере сортировки выключен и отображаются только 5 пунктов. На этой странице есть кнопка, которая открывает всплывающее окно, где я хочу, чтобы пользователь мог изменить эти параметры. Я использую встроенное всплывающее окно jquery. В этом всплывающем меню вы можете включить/отключить «сортировку», и вы можете ввести новый максимум. На всплывающем окне «ok», чтобы подтвердить ваши новые настройки. Это выглядит так:
<a href="" id="okbutton" data-role="button" onclick="sortAgain();">OK</a>
The sortAgain(); функция JavaScript выглядит следующим образом:
function sortAgain();
{
//some code to get the necessary variables//
...
//change the href of the button so you reload the page
document.getElementById("okbutton").href = "searchresults.php" + "?keyword=" + var1 + "&sort=" + var2 + "&max=" + var3
}
Так, в основном, прямо перед кнопкой «ОК» переходит на другую страницу, я поставил его HREF страницы, на которой она должна ориентироваться тоже.
Эта схема работает, и файл searchresults.php извлекается снова с сервера и повторно интерпретируется (с новыми переменными в URL-адресе).
Однако, если я попытаюсь изменить настройки снова после его изменения один раз, всплывающее окно просто ничего не делает! Другими словами, href кнопки ok на всплывающем окне остается пустым, а функция javascript sortAgain() не вызывается. Я не понимаю, почему он впервые называет метод onclick, но затем отказывается снова его называть?
Я предполагаю, что это связано с тем фактом, что popup html-код является неотъемлемой частью файла searchresult.php, и что hrefing на ту же страницу дает проблемы? Всплывающее окно - это чистый html, во всплывающем коде не участвует php. и снова, он работает отлично в первый раз.
Загружается ли он через ajax? Вы упомянули стандартный переход, но зачем беспокоиться об изменении 'href' на полностраничном перемещении (если вы не используете AJAX)? –
Я не думаю, что использую ajax? Файл php извлекает данные из базы данных, в зависимости от параметров сортировки и макс. Всплывающее окно получает некоторый пользовательский ввод, а затем переходит в searchresult.php? & Sort ... снова, но с новыми параметрами. Когда файл php перезагружается, поскольку переменные разные, результаты поиска будут обновляться. – user1884155