如何在不使用JavaScript刷新整个PHP页面的情况下更新url


How to update a url without refreshing the complete PHP page using the JavaScript?

我正在使用下面的JS制作一个url:

function reload(form){
var val1=form.dav.options[form.dav.options.selectedIndex].value;
var val2=form.pathogen.options[form.pathogen.options.selectedIndex].value;
var val3=form.topicF.options[form.topicF.options.selectedIndex].value;
var val4=form.ind.options[form.ind.options.selectedIndex].value;
var val5=form.subind.options[form.subind.options.selectedIndex].value;
self.location='/node/1?davQ=' + val1 + '&pathogenQ=' + val2 + '&topicQ=' + val3 + '&indQ=' + val4 + '&subindQ=' + val5;

这段代码运行得很好,但问题是每次运行它时,页面都会弹出,所有元素都会在眨眼后出现!

如何防止页面闪烁。我在页面列表框的onchange中使用此功能来更新url。

有别的办法吗?请帮忙。

注意:

在这种情况下,当第一个列表框值被选中,所有其他参数在用户选择其他列表框,最后提交页面使用存储在url中的值get在数据库中运行查询。

http‍://localhost:8080/lspo/data10.php?davQ=2011年8月30日&病原体Q=&topicQ=&indQ=&subindQ=因此,当选择任何下拉列表时,每个参数都会更新。这可以使用页面将保持的任何其他方法来完成吗光滑吗?请在这件事上提供帮助/建议。

2012年5月2日

当选择了一个下拉值时,它的值会在addressbar url中更新,同时它会在字段中得到更新,并因此生成下一个下拉字段值(来自mysqldb的sql查询)。请帮我解决这个问题。

2012年5月9日
到目前为止,我还找不到解决方案,我已经考虑了这个建议,但无法解决这个问题。还有其他建议吗。这对我来说将是一个真正的帮助,如果有的话,非常感谢你的回复

history.push()

http://html5doctor.com/history-api/

或者使用类似swfadress 的东西

javascript中有散列函数,或者您可以使用html5历史API