<input type="text" name="cnum<?php echo $id;?>" size="3" value="1" onblur="return cvp(<?php echo $id;?>,<?php echo $res2[m_price]; ?>,<?php echo $ids;?>);"/>
这是前台的一个文本框,通过修改它的值,调用cvp()方法,方法中传递3个参数,分别是$id,$m_price,$ids=>这个是一个数组。function cvp(key,mpr,ids){
alert(ids[].length);
var n_pre="total";
var num='cnum'+key.toString();
var total=n_pre+key.toString(); var t_number=document.getElementById(num).value;
var ttl=t_number*mpr;
document.getElementById(total).innerHTML=ttl; var sum=0;
for (var i=1;i<=ids.length;i++){
var ttl="total"+ids[i].toString();
var total=document.getElementById(ttl).innerText;
sum+=parseInt(total);
}
document.getElementById("sum").innerHTML="共计:"+sum+"元";
}这是js脚本执行时,总是提示'undefined'为空或不是对象,我感觉是ids的错误,应该怎么改啊

解决方案 »

  1.   

    alert(ids[].length);去掉会报错误么?
      

  2.   

    <?php echo $ids;?>这个只会输出Array,不是输出数组内容你的用XML格式来传递数组内容
      

  3.   

    onblur="return cvp(<?php echo $id;?>,<?php echo $res2[m_price]; ?>,<?php echo $ids;?>);"这里输出的是数组????
    你最好在PHP里:
    $ids=json_encode($ids);
    再用上面的方式输出!!!
    在JS里就以操作JSON数据的方法来操作数据