Передать параметр в URL в JavaScript

0

У меня есть DIV в моем .ASPX и когда я нажимаю в этом DIV я запускаю это в своем javascript-коде.

$("#btnFiltrar").click(function () {
    var status = "";
    var tipo = "";
    var outros = "";
    $("#divStatusImovel input").each(function () {
        if ($(this).is(":checked") == true) {
            var id = $(this).attr("id").replace("status_", "");
            switch (id) {
                case "1":
                    status += "at=t&";
                    break;
                case "2":
                    status += "in=t&";
                    break;
                case "14":
                    status += "ds=t&";
                    break;
                case "3":
                    status += "vnd=t&";
                    break;
                case "7":
                    status += "vndpr=t&";
                    break;
                case "8":
                    status += "vndtr=t&";
                    break;
                case "4":
                    status += "vndtr=t&";
                    break;
                case "9":
                    status += "vndtr=t&";
                    break;
            }
        }
    });

    $("#divTipoImovel input").each(function () {
        if ($(this).is(":checked") == true) {
            var id = $(this).attr("id").replace("tipo_", "");
            switch (id) {
                case "1":
                    tipo += "t1=t&";
                    break;
                case "2":
                    tipo += "t2=t&";
                    break;
                case "3":
                    tipo += "t3=t&";
                    break;
                case "4":
                    tipo += "t4=t&";
                    break;
                case "5":
                    tipo += "t5=t&";
                    break;
                case "7":
                    tipo += "t7=t&";
                    break;
                case "8":
                    tipo += "t8=t&";
                    break;
                case "9":
                    tipo += "t9=t&";
                    break;
                case "14":
                    tipo += "t14=t&";
                    break;
                case "15":
                    tipo += "t15=t&";
                    break;
                case "17":
                    tipo += "t17=t&";
                    break;
                case "145":
                    tipo += "t145=t&";
                    break;
            }
        }
    });

    $("#divOutrosTipos input").each(function () {
        if ($(this).is(":checked") == true) {
            var id = $(this).attr("id").replace("outros_", "");
            switch (id) {
                case "1":
                    outros += "ha=t&";
                    break;
                case "2":
                    outros += "fa=t&";
                    break;
                case "3":
                    outros += "fo=t&";
                    break;
                case "4":
                    outros += "pl=t&";
                    break;
                case "5":
                    outros += "dce=t&";
                    break;
            }
        }
    });
    var pathname = window.location;
    pathname += "?" + status + tipo + outros;
    pathname = pathname.substring(0, pathname.length - 1);
    alert(pathname);
    window.location = pathname;
});

В моей последней строке в этой функции javascript я пытаюсь взять пользователя на ту же страницу, но передавая некоторые параметры на свой URL, но без успеха, возникает перезагрузка на моей странице, но не передают параметры на моем URL-адресе.

Может ли кто-нибудь мне помочь?

ОБНОВИТЬ

Любопытство, когда я помещаю debugger перед window.location.href он работает

var pathname = window.location;
pathname += "?" + status + tipo + outros;
pathname = pathname.substring(0, pathname.length - 1);
debugger;
window.location.href = pathname;
Теги:

3 ответа

0
Лучший ответ

В соответствии с просьбой я собрал jsFiddle с некоторой тестовой разметкой:

<div id="divStatusImovel">
    <input type="radio" id="status_4" name="status">status_4</input>
    <input type="radio" id="status_1" name="status">status_1</input>
</div>
<br/>
<div id="divTipoImovel">
    <input type="radio" id="tipo_9" name="tipo">tipo_9</input>
    <input type="radio" id="tipo_145" name="tipo">tipo_145</input>
</div>
<button id="btnFiltrar">Submit</button>

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

var qs_arr = [];
for (prop in qs_items)
    qs_arr.push(prop + "=" + qs_items[prop]);

var qs_str = qs_arr.join("&");

window.location.search = qs_str;

Это связано с тем, что каждая часть строки запроса строится с помощью простой key-> карты значений (объекта), например:

var id = $(this).attr("id").replace("outros_", "");
var id_map = {
    "1" : "ha", "2" : "fa", "3" : "fo",
    "4" : "pl", "5" : "dce"
};
qs_items[id_map[id]] = "t";

Посмотреть полный jsFiddle

0

попробуйте изменить:

window.location

в

window.location.href
0

Если вы хотите прочитать переменные, переданные по URL-адресу, это может помочь вам, это то, что я использую.

    function getQueryVariable(variable) {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
         for (var i = 0; i < vars.length; i++) {
            var pair = vars[i].split("=");
            if (pair[0] == variable) { return pair[1]; }
         }
         return (false);
    }

например, url может быть примерно таким: www.example.com?area=AC&interval=day

Затем вы можете выбрать переменные: var yourvariable = getQueryVariable ("область");

  • 0
    где в нем jQuery?
  • 0
    Woops, ты прав, отредактировал ответ.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню