Передача переменной на другую страницу и выполнение функции условия if - PullRequest
0 голосов
/ 09 апреля 2019

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

Первая страница:

<a href="javascript:void(0)" onclick="pass(2)"></a>
<script>
function pass(x){
        var somval = x;
        window.location = 'contact/index.php?somval=' + somval;
    }

</script>

Вторая страница:

<script>
var somval;
    var qsParm = new Array();
    function qs() {
    var query = window.location.search.substring(1);
    var parms = query.split('&');
    for (var i=0; i < parms.length; i++) {
        var pos = parms[i].indexOf('=');
        if (pos > 0) {
            var key = parms[i].substring(0, pos);
            var val = parms[i].substring(pos + 1);
            qsParm[key] = val;
        }
    }
    }

    function compare(){
        if(somval == 1){
            alert(1);
            $("#radio_1").prop("checked", true);
        }else if(somval == 2){
            alert(2);
            $("#radio_2").prop("checked", true);
        }else{
        };
    }
    compare();
</script>

Единственная ошибка, отображаемая на консоли: undefined index.php? Somval = 1: 352

1 Ответ

0 голосов
/ 09 апреля 2019

Код неверный.Вы должны инициализировать переменную qaParm как Object.Также правильно установите значение переменной someval .Пожалуйста, попробуйте следующий код.

<script>
var somval;
var qsParm = {};
function qs() {
    var query = window.location.search.substring(1);
    var parms = query.split('&');
    for (var i=0; i < parms.length; i++) {
        var pos = parms[i].indexOf('=');
        if (pos > 0) {
            var key = parms[i].substring(0, pos);
            var val = parms[i].substring(pos + 1);
            qsParm[key] = val;
            if(key == 'someval'){
            somval = val;
            }
        }
    }
}


function compare(){
    if(somval == 1){
        alert(1);
        $("#radio_1").prop("checked", true);
    }else if(somval == 2){
        alert(2);
        $("#radio_2").prop("checked", true);
    };
}
compare();
</script>

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

function getParameterByName(name, url) {
        if (!url) {
            url = window.location.href;
        }
        name = name.replace(/[\[\]]/g, '\\$&');
        const regex = new RegExp(`[?&]${name}(=([^&#]*)|&|#|$)`);
        const results = regex.exec(url);
        if (!results) {
            return null;
        }
        if (!results[2]) {
            return '';
        }
        return decodeURIComponent(results[2].replace(/\+/g, ' '));
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...