我已经构建了两个单独工作的功能(当另一个被删除时)但不能一起工作。总体目标是当一个人选择他们想要在每个页面上看到的结果数量时,然后重新加载页面,并将值放入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);
});
});
答案 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');
}
});