作者tkdmaf (皮皮快跑)
看板PHP
标题Re: [请益] 请教各位高手关於两阶层下拉选单疑问
时间Fri Jun 22 00:55:14 2012
※ 引述《rjackie (刚到了~~)》之铭言:
: 这样的做法我稍微的了解运作方式了,
: 先感谢各位高手的指点。
: 但如果是同一个<form>中是否可做到
: 文字搜寻以及这样的两阶层式下拉选单并存呢?
: 是否是利用先判断文字栏位是否为空後再判断
: 下拉选单是否有值这样的方式?
: 因为同一个<from>只会有一刻按钮或是文字超连结
: 可以送出资料不是吗?
首先我把有带入php的程式码重新贴一份上来。
这是用县市为例子。
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<script src="jquery.js"></script>
<script>
<?php
$area = array(
1=>array('北部',array(1=>'基隆市',2=>'台北市',3=>"新北市",4=>"桃园县"
,5=>"新竹县",6=>"新竹市")),
2=>array('中部',array(7=>"苗栗县",8=>"台中市",9=>"南投县",10=>"彰化县"
,11=>"云林县")),
3=>array('南部',array(12=>"嘉义县",13=>"嘉义市",14=>"台南市",
15=>"高雄市",16=>"屏东县")),
4=>array('东部',array(17=>"宜兰县",18=>"花莲县",
19=>"台东县")),
5=>array('外岛',array(20=>"澎湖县",21=>"金门县",22=>"连江县"))
);
?>
var mydata = <?php echo json_encode($area)?>
//如果不使用php,json格式会是下面的样子。
//{
// 1:["北部",{1:"基隆市",2:"台北市",3:"新北市",4:"桃园县",5:"新竹县",6:"新竹市"}],
// 2:["中部",{7:"苗栗县",8:"台中市",9:"南投县",10:"彰化县",11:"云林县"}],
// 3:["南部",{12:"嘉义县",13:"嘉义市",14:"台南市",15:"高雄市",16:"屏东县"}],
// 4:["东部",{17:"宜兰县",18:"花莲县",19:"台东县"}],
// 5:["外岛",{20:"澎湖县",21:"金门县",22:"连江县"}]
//}
$(function(){
set_sel1_option();
do_select();
$('#sel1').change(do_select);
})
function set_sel1_option(){
for(var key in mydata){
var value = mydata[key][0];
$('#sel1').append('<option value="'+key+'">'+value+'</option>')
}
}
function do_select(){
$('#sel2').html('');
var sel1_value = $('#sel1 option:selected').val();
var sel2_op = mydata[sel1_value][1];
for(var key in sel2_op){
var value = sel2_op[key]
$('#sel2').append('<option value="'+value+'">'+value+'</option>')
}
}
</script>
</head>
<body>
<select id="sel1"></select>
<select id="sel2"></select>
</body>
</html>
上面可以整个复制贴上来使用,不过记得载入jquery
-----------------------------------------------------------------------
再来就是你这边提到的问题。
基本上,jquery的ajax就可以让你表单的东西直接post出去。
之後再接回传回的资料或是画面。
也就是说,你并不一定要经过form表单和表单内的submit的动作一样可以做出
post传递的行为,而且可以指定要传送那几个栏位的资料。
大致如下:
$.post('处理的网址'[,传送的post资料][,处理完成後进行的动作][,传回的资料格式])
例:
$.post('处理资料的网址',{
'account':$('#account').val();
},function(data){
alert(data)
},'json')
这边是表示我要送出account去判断,可能是判断像注册会员帐号是不是已被使用。
判断完成後会回传内容经用function的第一个参数回传。
这边是将data直接alert()出来,而data的回传格式采用json。
要注意的是说,除了处理的网址一定要给,後面的参数都是可以省略的。
这边比较特别是和一些函式用法不同的是他具备「参数省略」的功能。
也就是说,如果你不传送任何post参数时,可能将那个参数直接整个省略掉。
像上例如果不传account,你可以直接这样写:
$.post('url',function(data){
alert(data);
},'json');
jquery真的很方便,可以帮助你处理很多繁杂的程序。
但是不是说有了jquery就不需要专注在javascript。
最近看了几本像是王者归来javascript、javascript设计模式。
多了解一些这方面的东西,再搭配php就可以做出很多你想要的效果。
尤其是外挂的写法。
会写外挂的话,在多个专案要使用相同的功能时会相当的方便。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 175.180.97.168
1F:推 kuAIpAI:推~ 感谢分享经验~~ 06/22 11:24
2F:推 rjackie:非常感谢,新手练功中,感谢。 07/01 22:12