我是聪明的新手所以请原谅我的清白:oops:
我正在关注前一个程序员留下的代码,我在根据另一个选择框的选定值动态更改选择框的值时遇到此问题。
所以情况如下:
我下拉命名为“Section”,另一个命名为“Subsection”。
我需要提出的是,当我选择一个部分时,子部分的值也会改变,只显示选定部分下的子部分。
这是一个问题的javascript模拟:
<html>
<head>
<title>Box changing demo</title>
<script type="text/javascript">
var items = new Array();
items[0] = new Array("Dog", "Cat", "Pig");
items[1] = new Array("Andromeda", "Boötes", "Cepheus");
items[2] = new Array("Mercury", "Venus", "Earth");
items[3] = new Array("BMW", "Audi", "Bugatti");
function changeItems(){;
num=document.changer.section.options[document.changer.section.selectedIndex].value;
document.changer.subsection.options.length = 0;
for(i=0; i<items[num].length; i++){
document.changer.subsection.options[i] = new Option(items[num][i], items[num][i]);
}
}
</script>
</head>
<body>
<form name="changer">
<select name="section" onchange="changeItems();">
<option value="0">Animals</option>
<option value="1">Constelations</option>
<option value="2">Planets</option>
<option value="3">Cars</option>
</select>
<select name="subsection">
<!--<option>tgntgn</option> -->
</select>
</form>
</body>
</html>
这就是我需要做的聪明才智。
任何人
感谢您的帮助。
答案 0 :(得分:1)
你不能在Smarty中这样做,因为它只能用HTML完成。你必须使用Javascript。看看http://www.texotela.co.uk/code/jquery/select/ - 它似乎很容易实现。
答案 1 :(得分:0)
希望这回答你的问题
<!--JAVASCRIPT-->
<!--CREATE DROPBOX WHEN SEC1 IS SELECTED-->
<script>
var section= document.getElementById("section").value;
if(section == SEC1){
document.getElementById("subSEC").innerHTML='
<select name="subsection" type="text" id="subsection">
<option value=""></option>
<option value="Sub1">Sub1</option>
<option value="Sub2">Sub2</option>
<option value="Sub3">Sub3</option>
</select>"
';
}
</script>
<!--HTML MARKUP-->
<select name="section" type="text" id="section">
<option value=""></option>
<option value="SEC1">SEC1</option>
<option value="SEC2">SEC2</option>
<option value="SEC3">SEC3</option>
</select>
<!--SPACE TO PLACE DROPBOX FROM JAVASCRIPT-->
<span id="subSEC">
</span>
答案 2 :(得分:0)
尝试类似:
{html_options name=section options=$options selected=$index
onchange="changeItems();"}
其中$ options和$ index(select标签中所选选项的索引)在php中分配:
<?php
...
$smarty = new Smarty ();
...
$smarty->assign ( 'index', $some_php_val );
$smarty->assign ( 'options', $some_php_array );
...
?>
了解更多信息:
http://www.smarty.net/docsv2/en/language.function.html.options.tpl http://www.smarty.net/forums/viewtopic.php?p=53422