冲突的jquery函数

时间:2017-03-03 20:23:06

标签: php jquery

我已经构建了两个单独工作的功能(当另一个被删除时)但不能一起工作。总体目标是当一个人选择他们想要在每个页面上看到的结果数量时,然后重新加载页面,并将值放入URL中,然后使用get in php检索;然后在新页面上,下拉菜单中的所选值是触发重新加载的值。

Jquery的

$(document).ready(function(){
    //the first section takes the value from the php script and then selects the option if it's not null - this works fine on it's own

    var data = "<?php echo $rp;?>"; 
    if (data){
        $("#bo2 option[value="+data+"]").attr('selected', 'selected');
    }

    //this too works fine on it's own but not with the above
    $('#bo2').change(function(){

        var opt = $(this).val();
        var url = "sales.php?results=";
        var newurl = url + opt;
        window.location.replace(newurl);
    });
});

总之,第一个工作正常,因为它会重新选择正确的值,例如,我将?results=50放在sales.php之后,但是jQuery触发重新加载并不起作用。我做错了什么?

只是澄清一下。第一页名为&#34; sales.php&#34;并且下拉菜单具有当前选择的值&#34; 10&#34;,其中25和50是其他选项。当我点击另一个数字时,jquery不起作用。但是,我应该在结尾输入&#34;?result = 50&#34;,例如,它确实有效;并且下拉菜单现在显示50;当我点击十,网址更新,下拉显示十;那么问题就是它们似乎只是在一开始就发生冲突,就像它一样。

似乎问题可能与jquery如何处理php有关。举例说明以下第一个有效的例子,然后是第二个没有的例子:

1)

$(document).ready(function(){

$('#bo2').change(function(){

var opt = $(this).val();

var url = "sales.php?results=";

var newurl = url + opt;

window.location.replace(newurl);

});

});

2)然而,由于包含了php定义的jquery变量,这个更改函数不会触发页面的重新加载。

$(document).ready(function(){

var data = "<?php echo $rp;?>";


 $('#bo2').change(function(){

var opt = $(this).val();

var url = "sales.php?results=";

var newurl = url + opt;

window.location.replace(newurl);

});

});

1 个答案:

答案 0 :(得分:0)

这实现了我想要的(我不知道php是否提出了问题)。该功能来自此处 - Get url parameter jquery Or How to Get Query String Values In js

另外,我很惊讶没有人比我更有经验并没有指出似乎也有所作为的东西; &#34;第一&#34;原帖中的功能实际上需要第二。

因此,当用户点击选择菜单中的某个选项时,下面将重新加载新页面,其中包含预定义选项,用于显示每页要查看的结果数量;然后,该值将显示在网址中,重要的是,选择菜单的当前选择值现在也将是此值;这很重要,因此如果用户返回原始视图数,则change()函数仍然有效。

$(document).ready(function(){

var getUrlParameter = function getUrlParameter(sParam) {
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
    sURLVariables = sPageURL.split('&'),
    sParameterName,
    i;

for (i = 0; i < sURLVariables.length; i++) {
    sParameterName = sURLVariables[i].split('=');

    if (sParameterName[0] === sParam) {
        return sParameterName[1] === undefined ? true : sParameterName[1];
    }
}
};



var data = getUrlParameter('results');

$('#bo2').change(function(){

var opt = $(this).val();

var url = "sales.php?results=";

var newurl = url + opt;

window.location.replace(newurl);
});

if (data)
    {
        $("#bo2 option[value="+data+"]").attr('selected', 'selected');
    }

});