不知道这个问题是不是很简单,方便的话不妨看下V2
是你 2004-10-26 03:25:30 感谢你查看这个贴子,如果方便的话,请帮我解决如下的问题
一个二维数组,像这样:
array(array(pid=>001,pname=>产品名1,pprice=>产品价格1),
array(pid=>002,pname=>产品名2,pprice=>产品价格2),
array(pid=>003,pname=>产品名3,pprice=>产品价格3),
)
相用JS处理成这样:
一个下拉框pid(存放产品pid),
一个下拉框list(存放产品名列表),
再一个文本框pprice(用于存放产品价格),
再一个文本框q(用于输入产品数量),
最后一个文本框result(用于存放q和pprice相乘的结果)
当输入pid时,下拉框list跳到相应的产品,并将该产品的价格显示于文本框pprice;当在文本框q输入数字时,直接在文本框result显示相乘结果(精确到小数后两位)
最重要的一点,以上的文本框在同一页面的form内可以以任意多份并独立操作,最后把所有的result加起来并显示
顺便,pprice,q两个文本框只能输入数字;
我的数组不一定非存不二维数组不可,也可弄成别的格式;
不输入pid而直接选下拉框,效果也应当一样。
非常感谢!大概就是下面代码的显示的效果,在一个页面的form内多份显示并独立操作,最后把所有的result加起来并显示就OVER了
<HTML>
<HEAD>
</HEAD>
<BODY onLoad="Init()">
<form>
<select name="pid" onChange="changelist(this.selectedIndex)">
</select>
<select name="list" onChange="changelist(this.selectedIndex)">
</select>
<input name="pprice" type="text" id="pprice" size="12" onpropertychange="calc()">*
<input name="q" type="text" id="q" size="8" onpropertychange="calc()">=
<input name="result" type="text" id="result">
<script language="JavaScript" type="text/JavaScript">
function Info(pid,pname,pprice){
this.pid=pid
this.pname=pname
this.pprice=pprice
}
//以下数据由数据库取得在服务器端产生
var PInfo =new Array(6)//这个3根据记录集的数目定
//下面是用循环来产生
PInfo[0]=new Info("001","墨盒","360.00")
PInfo[1]=new Info("002","打印纸","60.00")
PInfo[2]=new Info("003","打印机","2200.00")
PInfo[3]=new Info("004","计算机","8400.00")
PInfo[4]=new Info("005","碎纸机","720.00")
PInfo[5]=new Info("A006","碎纸机8","7890.00")
//数据结束
function Init(){
for (var i=0;i<PInfo.length;i++){
document.all.pid.options[i]=new Option(PInfo[i].pid)
document.all.list.options[i]=new Option(PInfo[i].pname)
document.all.pprice.value=PInfo[i].pprice
}
}
function calc(){
if (document.all.q.value.length>0){
document.all.result.value=document.all.pprice.value*document.all.q.value
}
}
function changelist(x){
document.all.pid.options[x].selected=true;
document.all.list.options[x].selected=true;
document.all.pprice.value=PInfo[x].pprice
}
</script>
</BODY>
</HTML>