<SCRIPT LANGUAGE="JavaScript">
<!--
function changenum(price,type,id,uid){
price=parseFloat(price);
num = parseInt($("#numid"+id).val());
if(type==1){ //增加
num++;
}else if(type==-1){ //减少
num--;
}else if(type==0){ //删除
num=0
}
if(type!=0 && num==0){
alert('数量不能小于1,若不想购买,请选择删除');
num=1;
}
$("#numid"+id).val(num);
$("#showid"+id).html(String(num*price));
obj=$(".shows"+uid);
thispice = 0;
for(i=0;i<obj.size();i++){
thispice+=parseFloat(obj.eq(i).html());
}
$("#total"+uid).html(thispice); if(type==0){
$.get("join.php?type=setcookie&cid="+id+"&num="+0);
$("#tr"+id).hide();
}else{
$.get("join.php?type=setcookie&cid="+id+"&num="+num+"&"+Math.random());
}
obj2 = $(".totalprice");
if(obj2.size()>1){
thispice = 0;
for(i=0;i<obj2.size();i++){
thispice+=parseFloat(obj2.eq(i).html());
}
$("#total_all").html(thispice);
}
}
//-->
</SCRIPT>
<span id="total$rs[uid]" class="totalprice">$total</span>元
================================说明=======================================以上的功能是程序中以有的js执行代码 能够正常的把改变$total的值,以下是我想要加的功能,就是当我选择ems20元时,那么在 $total本身是100元那么这时就是120元,当我选择平邮50元时,那么在 $total本身是100元那么这时就是150元, 加个运费的值,(如果没选择默认是快递10元。) 求高手帮我在原有的js基础 加下现在功能js代码,谢谢!================================说明=======================================<select id="collect" name="youfen">
<option value='10'>快递:10元</option>
<option value='20'>EMS:20元</option>
<option value='50'>平邮:50元</option>
</select>
<!--
function changenum(price,type,id,uid){
price=parseFloat(price);
num = parseInt($("#numid"+id).val());
if(type==1){ //增加
num++;
}else if(type==-1){ //减少
num--;
}else if(type==0){ //删除
num=0
}
if(type!=0 && num==0){
alert('数量不能小于1,若不想购买,请选择删除');
num=1;
}
$("#numid"+id).val(num);
$("#showid"+id).html(String(num*price));
obj=$(".shows"+uid);
thispice = 0;
for(i=0;i<obj.size();i++){
thispice+=parseFloat(obj.eq(i).html());
}
$("#total"+uid).html(thispice); if(type==0){
$.get("join.php?type=setcookie&cid="+id+"&num="+0);
$("#tr"+id).hide();
}else{
$.get("join.php?type=setcookie&cid="+id+"&num="+num+"&"+Math.random());
}
obj2 = $(".totalprice");
if(obj2.size()>1){
thispice = 0;
for(i=0;i<obj2.size();i++){
thispice+=parseFloat(obj2.eq(i).html());
}
$("#total_all").html(thispice);
}
}
//-->
</SCRIPT>
<span id="total$rs[uid]" class="totalprice">$total</span>元
================================说明=======================================以上的功能是程序中以有的js执行代码 能够正常的把改变$total的值,以下是我想要加的功能,就是当我选择ems20元时,那么在 $total本身是100元那么这时就是120元,当我选择平邮50元时,那么在 $total本身是100元那么这时就是150元, 加个运费的值,(如果没选择默认是快递10元。) 求高手帮我在原有的js基础 加下现在功能js代码,谢谢!================================说明=======================================<select id="collect" name="youfen">
<option value='10'>快递:10元</option>
<option value='20'>EMS:20元</option>
<option value='50'>平邮:50元</option>
</select>
加js函数
function Add(x)
{
$(".totalprice").html(parseInt($(".totalprice").html() + parseInt(x)))
}
<font id="total$rs[uid]" class="totalprice2">$total</font>元
<meta charset="utf-8">
<html>
<head>
<title></title>
</head>
<body>
<select id="collect" name="youfen">
<option value='10' date-chose='1'>快递:10元</option>
<option value='20' date-chose='0'>EMS:20元</option>
<option value='50' date-chose='0'>平邮:50元</option>
</select>
<span id="total$rs[uid]" class="totalprice">110</span>元
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.min.js"></script>
<script type="text/javascript">
function changenum(price, type, id, uid) {
price = parseFloat(price);
num = parseInt($("#numid" + id).val());
if (type == 1) { //增加
num++;
} else if (type == -1) { //减少
num--;
} else if (type == 0) { //删除
num = 0
}
if (type != 0 && num == 0) {
alert('数量不能小于1,若不想购买,请选择删除');
num = 1;
}
$("#numid" + id).val(num);
$("#showid" + id).html(String(num * price)); obj = $(".shows" + uid); thispice = 0;
for (i = 0 ; i < obj.size() ; i++) {
thispice += parseFloat(obj.eq(i).html());
}
$("#total" + uid).html(thispice); if (type == 0) {
$.get("join.php?type=setcookie&cid=" + id + "&num=" + 0);
$("#tr" + id).hide();
} else {
$.get("join.php?type=setcookie&cid=" + id + "&num=" + num + "&" + Math.random());
} obj2 = $(".totalprice");
if (obj2.size() > 1) {
thispice = 0;
for (i = 0 ; i < obj2.size() ; i++) {
thispice += parseFloat(obj2.eq(i).html());
}
$("#total_all").html(thispice);
}
}
/**
* 计算运费的代码如下!!!!!!!!!!!!!!!!!!!!!!!
*/
$("#collect").change(function() {
var oldSentpice = parseInt($("option[date-chose='1']").val(), 10);
var value = parseInt(this.value, 10) + parseInt($(".totalprice").text()) - oldSentpice;
$(".totalprice").text(value);
$("option[date-chose='1']").attr("date-chose", "0");
$("option:selected").attr("date-chose", "1");
});
</script></body></html>
但有以下问题,请再次帮助。(多用户考虑到了,非常不错。但是有以下问题)
测试结果为:当此时的变量 $total 的值为100元时,当我选择select下拉框的 快递:10元 时,此时的 $total 为10元了,而不是在 100元的基础 +10 等于110元。
问题2.没有加上默认的10元,快递费
<font id="total$rs[uid]" class="totalprice2">$total</font>元
这里就莫名其妙,1个select同时改变这2个地方的内容?那代码写成一样的就可以了,或者多写一行代码就可以了我想,这并不是你想要的效果吧?其实,你要是了解js和HTMLDOM,实现这样的功能很简单,也不需要什么jquery之类的东西有时候,提问者觉得,我的问题怎么老是没人回答或者回答的结果不是我想要的?原因就在于,提问者根本就没把问题描述清楚,或者贴的代码支离破碎,或者只是部分代码,别人无法明白你要什么。
EOT;
if($step==1){
print <<<EOT
-->
<div class="main">
<form name="form_order" method="post" action="?action=$atc" enctype="multipart/form-data">
<div class="shopcartbox">
<div class="shopcart2">
<!--
EOT;
$total_all=0;
$jinbi_all=0;
foreach($listdb AS $name=>$array){
$total=0;
$jinbi=0;
print <<<EOT
-->
<ul class="u1">
<li class="l1"><div><input type="checkbox" name="" id="" checked="checked" /> 全选</div></li>
<li class="l2">商品</li>
<li class="l3">返积分</li>
<li class="l4">数量</li>
<li class="l5">单价</li>
<li class="l6">总价</li>
</ul>
<!--
EOT;
foreach($array AS $rs){
$rs[picurl]=$rs[picurl]?$rs[picurl]:"$webdb[www_url]/images/default/nopic.jpg";
$rs[picurl]=tempdir($rs[picurl]);
@extract($db->get_one("SELECT content FROM {$_pre}content_$rs[mid] WHERE id=$rs[id]"));
$content=preg_replace('/<([^<]*)>/is',"",$content); //把HTML代码过滤掉
$content=preg_replace('/ | | /is',"",$content); //把多余的空格去除掉
$content= get_word($content,100);
$total+=$rs[price2];
$total_all+=$rs[price2];
$jinbi+=$rs[jinbi2];
$jinbi_all+=$rs[jinbi2];print <<<EOT
-->
<ul class="u2" id="tr$rs[id]">
<li class="l1"><input type="checkbox" name="" id="" checked="checked" /></li>
<li class="l2"><a href="bencandy.php?city_id=$rs[city_id]&fid=$rs[fid]&id=$rs[id]" class="pic" target="_blank"><img src="$rs[picurl]"height="90" onError="this.src='$webdb[www_url]/images/default/nopic.jpg'"/></a><h3><a href="bencandy.php?city_id=$rs[city_id]&fid=$rs[fid]&id=$rs[id]" target="_blank">$rs[title]</a></h3><p>$rs[content]</p></li>
<li class="l3">0分</li>
<li class="l4">{$rs[num]}</li>
<li class="l5"><font>{$rs[price]}</font>元</li>
<li class="l6"><font id="showid$rs[id]" class="shows$rs[uid]">{$rs[price2]}</font>元</li>
</ul>
<!--
EOT;
}print <<<EOT
-->
<ul class="u3"><div class="fr">
<p class="p1">
运送方式:
<!--
EOT;
if($rs[youfei]=="1"){print <<<EOT
-->
<select id="collect" name="postdb[youfei]" onchange="Add(this.value,'total$rs[uid]')">
<option value='10'>快递:10元</option>
<option value='20'>EMS:20元</option>
<option value='50'>平邮:50元</option>
</select><SCRIPT LANGUAGE="JavaScript">
<!--
function changenum(price,type,id,uid){
price=parseFloat(price);
num = parseInt($("#numid"+id).val());
if(type==1){ //增加
num++;
}else if(type==-1){ //减少
num--;
}else if(type==0){ //删除
num=0
}
if(type!=0 && num==0){
alert('数量不能小于1,若不想购买,请选择删除');
num=1;
}
$("#numid"+id).val(num);
$("#showid"+id).html(changeTwoDecimal(String(num*price)));
obj=$(".shows"+uid);
thispice = 0;
for(i=0;i<obj.size();i++){
thispice+=parseFloat(obj.eq(i).html());
}
$("#total"+uid).html(thispice); if(type==0){
$.get("join.php?type=setcookie&cid="+id+"&num="+0);
$("#tr"+id).hide();
}else{
$.get("join.php?type=setcookie&cid="+id+"&num="+num+"&"+Math.random());
}
obj2 = $(".totalprice");
if(obj2.size()>1){
thispice = 0;
for(i=0;i<obj2.size();i++){
thispice+=parseFloat(obj2.eq(i).html());
}
$("#total_all").html(thispice);
}
}
function changeTwoDecimal(x){
var f_x = parseFloat(x);
if(isNaN(f_x)){
alert('function:changeTwoDecimal->parameter error');
return false;
}
var f_x = Math.round(x*100)/100;
return f_x;
}
function Add(m,id){
document.getElementById(id).innerHTML = parseInt(document.getElementById(id).getAttribute("total")+parseInt(m))
//--></SCRIPT>
<!--
EOT;
}print <<<EOT
-->
</p>
<p class="p2"><strong>店铺商品合计:</strong>(含运费) <font id="total$rs[uid]" class="totalprice">$total</font>元</p>
</div><div class="fl">
<p class="p1"><stron>卖家:{$rs[username]}</strong></p>
<p class="p2">给卖家留言:<textarea name='postdb[content]' id='atc_content' >$rsdb[content]</textarea></p>
</div>
</ul>
<!--
EOT;
}print <<<EOT
-->
<!--
EOT;
if(count($listdb)>1){
print <<<EOT
-->
<ul class="u4"><div><strong>商品总价:</strong>(含运费) <font id="total_all">$total_all</font>元</div></ul>
<!--
EOT;
}print <<<EOT
-->
</div>
</div><div class="clear20"></div>
<div class="shoppostbox">
<div class="shoppostdiv">
<div class="shopinfo">
<p><span>实付款:</span>
<!--
EOT;
if(count($listdb)>1){
print <<<EOT
-->
<font id="total$rs[uid]" class="totalprice">$total_ll</font>元
<!--
EOT;
}else{print <<<EOT
-->
<font id="total$rs[uid]" class="totalprice">$total</font>元
<!--
EOT;
}print <<<EOT
-->
</p>{$address_selects}
</div>
</div>
<div class="shop_postbtn">
<input type="submit" name="imageField" id="imageField" class="shop-submit" value=" " />
<input type="hidden" name="fid" value="$fid">
<input type="hidden" name="id" value="$id">
<input type="hidden" name="cid" value="$cid">
<input type="hidden" name="postdb[title]" id="atc_title" size="50" value="$infodb[title]">
</div>
<!--
EOT;
if($job=='edit'){print <<<EOT
-->
<SCRIPT LANGUAGE="JavaScript">
<!--
$(document).ready(function(){
$("#othermore").show();$("#dobutton").hide();
});
//-->
</SCRIPT>
<a href="?action=del&id=$id&cid=$cid&fid=$rsdb[fid]" onClick="return confirm('你确认要删除吗?');">删除</a>
<!--
EOT;
}print <<<EOT
-->
</div><script language="JavaScript">
<!--
function chooseAddress(selObj){
value = selObj.options[selObj.selectedIndex].value;
if(value=='-1'){
ifHideMoreTr(false);
}else{
ifHideMoreTr(true);
}
}
function ifHideMoreTr(type){
var arr = ["username","phone","mobphone","email","qq","postcode","address" ];
$("#othermore input").each(function (i){
if(jQuery.inArray(this.name.replace(/postdb\[order_([\w]+)\]/, "$1"),arr)!=-1){
obj=$(this).parent().parent();
if(type==true){
obj.hide()
}else{
obj.show()
}
}
});
}$(document).ready(function(){
sObj = $("#choose_Address");
if(sObj.get(0).options.length==1||"$job"=="edit"){
sObj.parent().parent().hide();
ifHideMoreTr(false);
}else{
ifHideMoreTr(true);
}
});
//-->
</script>
</form>
</div>
<!--
EOT;
}
print <<<EOT
-->
<div class="clear20"></div>
</div>
<!--
EOT;
?>
-->
====上面是我整个页面的代码======以下是图片功能说明==================
当我选择ems20运费时,在运送方式中点击下拉框中的运费时那么就用 店铺合计总价+ 20元 当我点击平邮50元时,店铺合计总价+ 50元.我说的要二个地方显示,是因为他如果存在二个不同的商家的商品时,会有二个商家合起来的总价和 商家商品本身的总价
<option value='10'>快递:10元</option>
<option value='20'>EMS:20元</option>
<option value='50'>平邮:50元</option>
</select>
对name="postdb[youfei]"属性进行操作,在action中设置名为postdb[youfei]的参数,即:private String postdb[youfei],然后生成get/set方法,就可以取到值了~~~
①、初期的运费可以在$("#total_all").html(thispice);上面加。
所以将$("#total_all").html(thispice);改为$("#total_all").html(thispice + Number($('#collect').val()));即可。
②、改变运费的时候加一个select监听。
$('#collect').change(function() {
$("#total_all").html(eval($('#total_all').html() + '+' + $(this).val());});
}