如何用ajax实现,刷新页面时,页面设置的下拉菜单(select)、raido保持不变?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用ajax实现,刷新页面时,页面设置的下拉菜单(select)、raido保持不变?相关的知识,希望对你有一定的参考价值。

<select name="sex" id="sex">
<option value="01" >男</opton>
<option value="02" >女</opton>
</select>

<input id="s1" type="radio" name="xueli" value="0" />本科
<input id="s2" type="radio" name="xueli" value="1" />专科
要达到的目的是开始是设置为男、专科,刷新页面后,页面显示仍是男、专科。

刷新页面时,要使下拉菜单(select)、raido保持不变,用ajax是无法实现的。我想只能通过cookies才能实现。刷新前先把select或radio的值保存在cookies中,刷新后再填回去。下面是测试代码:
<select name="sex" id="sex" onchange="save()">
<option value="01" selected >男</opton>
<option value="02" >女</opton>
</select>

<input id="s1" type="radio" name="xueli" value="0" onclick="save()"/>本科
<input id="s2" type="radio" name="xueli" value="1" checked onclick="save()"/>专科

<script language="javascript" type="text/javascript">
function save()
selectIndex = document.getElementById("sex").selectedIndex;
document.cookie = 'selectIndex =' + selectIndex;
radios = document.getElementsByName("xueli");
for (i = 0; i < radios.length; i++)
if (radios[i].checked) document.cookie = 'radioindex =' + i;


window.onload = function ()
var cooki = document.cookie;
if (cooki != "")
cooki = "\"" + cooki + "\"";
cooki = cooki.replace(/\s*/g, "").replace(/=/g, '":"').replace(/;/g, '","');
var json = eval("(" + cooki + ")"); //将coolies转成json对象
document.getElementById("sex").options[json.selectIndex].selected = true;
document.getElementsByName("xueli")[json.radioindex].checked = true;

else
save();

</script>
参考技术A 这个功能不要用AJAX去做。。也没人这样去做,你在LOAD事件里,每次刷新把select、raido的值都设定一下就OK了 比如设置 select 的最小选定项是哪个 哪个radio 的 值是true. 参考技术B 用Ajax进行局部刷新就行了,你需要更新的才去更新,
你不希望更新这个下拉菜单就别去动
如果你用Ajax提交整个页面刷新,那就没有Ajax的意义了
参考技术C <select name="sex" id="sex">
<option value="01" selected >男</opton>
<option value="02" >女</opton>
</select>

<input id="s1" type="radio" name="xueli" value="0" />本科
<input id="s2" type="radio" name="xueli" value="1" checked/>专科

如何用php+ajax实现页面的局部刷新?(转)

 client.html

XML/HTML code
 
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <title> jquery demo </title>
  <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
  <script type="text/javascript">
    function show(){
        $.get( "server.php", function(data) {
            $(‘#txt‘).html(data.content);
        }, "json" );
    }
  </script>
 
</head>
 
<body>
    <p>這裡不會被刷新</p>
    <div id="txt">原來內容</div>
    <input type="button" value="刷新內容" onclick="show()">
</body>
</html>

server.php

PHP code
 
?
1
2
3
4
5
6
7
<?php
$ret = array();
$ret[‘content‘] = ‘新內容‘;
 
echo json_encode($ret);
 
?>

以上是关于如何用ajax实现,刷新页面时,页面设置的下拉菜单(select)、raido保持不变?的主要内容,如果未能解决你的问题,请参考以下文章

如何用php+ajax实现页面的局部刷新?(转)

ASP如何用Ajax实现无刷新读取数据库信息(后台发布信息,前台不刷新也能看到)

如何用vue实现二级菜单栏

如何用ajax实现mui下拉列表

请问ASP.NET中当点击某个控件时(如Button)不想进行整个页面的刷新怎样设置?

刷新页面时 select值保持不变