Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Передача параметров в url средствами jquery ajax (https://javascript.ru/forum/misc/56681-peredacha-parametrov-v-url-sredstvami-jquery-ajax.html)

sys 28.06.2015 21:28

Передача параметров в url средствами jquery ajax
 
Всем привет.

Есть необходимость добавить GET параметры используя jquery ajax при клике кнопке. Например есть код

Код:

<button id="20" class="click">Click me</button>
<button id="21" class="click">Click me</button>
<button id="22" class="click">Click me</button>

При клике на конкретную кнопку нужно, передать id кнопки в строку, чтобы выглядело так

Код:

myapp.com/mainpage.jsp?check=20
Суть задачи вообще в чём. Нужно:
- При клике, чтобы открывался pop-up, в котором есть код, который берёт значение параметра check;
- выполняет выборку из базы;
- отображает результат.

Код:

<c:if test="${not empty param.check}">
        <c:forEach var="theItem" items="${service.getItems(param.check)}">
            <td><c:out value="${theItem.getTitle()}"></c:out></td>
            <td><c:out value="${theItem.getInfo()}"></c:out></td>
        </c:forEach>
</c:if>

Изначально сделал, кликающими элементами ссылки

Код:

<a href="?check=21" class="click">Click me</a>
<a href="?check=22" class="click">Click me</a>

Результат отображал в соседней колонке - тут без проблем, при клике на ссылку подставяется нужный параметр в URL и делается выборка в соседней табличке на странице. Проблема появилась в том, что не получается сделать, тоже самое только не через ссылки а кнопки, а параметры чтобы передавались через jquery ajax a не href. С реализацией не выходит :( Перекопал большое количество примеров - х*ен там. Один из последних вариантов был.

Код:

$(document).ready(function() {
        $(".click").click(function() {
 
            $.ajaxSetup({
              url: "mainpage.jsp",
              global: false,
              type: "GET"
            });
            $.ajax({ check: 21 });
          });
      });

Но при дебаге, значение check = null, а точнее или если делать

Код:

<%=request.getParameter("check") %>
Подскажите пожалуйста подсказать, что делаю не так.

ksa 29.06.2015 08:37

Цитата:

Сообщение от sys
<button id="20" class="click">Click me</button>
<button id="21" class="click">Click me</button>
<button id="22" class="click">Click me</button>

При клике на конкретную кнопку нужно, передать id кнопки в строку, чтобы выглядело так

Код:
myapp.com/mainpage.jsp?check=20

Как вариант...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
<link rel='stylesheet type=text/css href=tmp.css' />
<link rel="stylesheet/less" type="text/css" href="style.less">
<script src="http://cdnjs.cloudflare.com/ajax/libs/less.js/2.5.0/less.min.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$('button').click(function(){
		var url='myapp.com/mainpage.jsp?check='+this.id;
		alert(url);
	});
});
</script>
</head>
<body>
<button id="20" class="click">Click me</button>
<button id="21" class="click">Click me</button>
<button id="22" class="click">Click me</button>
</body>
</html>

jestify 08.10.2016 09:31

Добрый день, уважаемые! у меня стоит похожий вопрос, но выбирается 2 параметра, только потом происходит переход.
Не могу найти решение следующей задачи: страничка состоит из 2х частей. В первой части блоки div с параметрами(1-население, 2-средний возраст, 3-средняя зарплата и т.д.).Каждый параметр имеет ссылку((href="/main/Gorod.php?action=X)). Во второй части список городов.Каждый город имеет ссылку(href="/main/Gorod_inf.php?gorod=Y". Где X и Y -порядковые номера.
Выглядит примерно так:
_______________________
.....часть1...........часть2..|
|.1параметр...|...1город....|
|.2параметр...|...2город....|
|.3параметр...|...2город....|
|..................|.................|
|.Xпараметр...|...Yгород....|
_______________________

Если пользователь выберет город, то во второй части блок отобразит информацию из вики о городе, при этом останется возможность выбрать параметр. Вот тут то при выборе параметра должно произойти слияние ссылок,формирование единой и переход по ней. Что то вроде /main/gorod.php?action=$X&gorod=$Y.
Какие есть варианты? если есть пример,было бы замечательно..

laimas 08.10.2016 16:33

Цитата:

Сообщение от jestify
Вот тут то при выборе параметра должно произойти слияние ссылок,формирование единой и переход по ней.

Что это означает, например для позиции 2:

а) 2параметр и 2город получают каждый таковую ссылку?
б) 2параметр и 2город уже единый текст для единой ссылки?

jestify 08.10.2016 16:39

Если пользователь выбрал 2 параметр и 2 город, формируется такая ссылка: href="/main/Gorod_inf.php?gorod=2&action=2"

laimas 08.10.2016 16:42

Цитата:

Сообщение от jestify
Если пользователь выбрал 2 параметр и 2 город, формируется такая ссылка: href="/main/Gorod_inf.php?gorod=2&action=2"

Это ничего не поясняет - отдельная где-то ссылка или как?
К тому же, сперва было написано так - Если пользователь выберет город, то во второй части блок отобразит информацию из вики о городе, при этом останется возможность выбрать параметр.

То есть о втором условии ни слова. Вы уж пропишите все "И", иначе никто гадать не станет, что, когда и где требуется.

jestify 08.10.2016 16:49

Если пользователь выберет город, то в блоке где были города,появится информация из вики о городе и "запомнится" соответствующий raj=X, После чего пользователь выберет параметр, который его интересут, тем самым запомнится 2я переменная action=Y, ссылка будет сформирована из двух параметров, браузер направит пользователя на страницу /main/Gorod_inf.php?gorod=X&action=Y. Надеюсь, понятно объясняю. То есть ,переход по ссылке осущетсвится только когда пользователь выбрал и город, и параметр

laimas 08.10.2016 18:44

Цитата:

Сообщение от jestify
После чего пользователь выберет параметр, который его интересут, тем самым запомнится 2я переменная action=Y

А если пользователь сначала щелкнет 2параметр, тогда что? Игнорировать или запомнить и ждать выбор города? Но если таковое возможно, то судя по вопросу выбор города, это асинхронный запрос и отображение у клиента полученного, но коли первый параметр выбран, и выбран вторым город, то нужно осуществлять переход, смысла нет отображать.

От вас просят описать все условия, а вы видимо не обдумали все возможные ситуации, словно пользователь будет выбирать так, как вы этого ожидаете. И хорошо бы привести пример реального html-кода (части), а не абстракции "страница разделенная пополам", ибо не понять связаны ли ваши пары ссылок как либо, или же удобно обращаться к ним по общему родителю, и т.п.

jestify 09.10.2016 09:28

Нашел такое решение:
($_GET["gorod"].)
<form action="script.php" method="get" >
<input type="submit" name="action" value="Воронеж">

Таким образом, при щелчке на кнопку "Воронеж" произойдет переход на адрес script.php?action=Воронеж.
Теперь проблема в следующем, значение value пишется и в url и на кнопку.. Ответ сам не нашел, к сожалению. Хотелось бы дописать
<input type="submit" name="action" value="Воронеж" id="1"> И чтобы на кнопке была надпись Воронеж,а в адресную строку попадало значение id

laimas 09.10.2016 10:53

И как это найденное решение можно сопоставить с тем, что было описано ранее? Ну а коли так и надо, то

<form action="script.php">
<input type="hidden" name="action" value="1">
<input type="submit" value="Воронеж">
</form>

По умолчанию форма передается методом GET, то есть method="get" можно и опустить.


Часовой пояс GMT +3, время: 16:14.