类型转换问题,难道没法解决吗?一定尽快给分。忘各位高手帮帮忙,分全给了~!

时间:2021-11-15 08:57:51
我要传一个参数
数据库中定义该参数为char类型,长度为5
以下为部分数据,如00001,00002,00103,04032等
如果用javascript,传回来的是1,2,103,4032
请问怎样才能用javascript原封不动的传呢???

15 个解决方案

#1


你可以自己写一个函数吗?
这样就可以实现你要的功能了吗?

#2


<script>
x=11;
alert(valtostr(x,5));
function valtostr(val,len){
   s=val;
   for (i=0;i<len;i++) s="0"+s;
   return s.substr(s.length-len);
}
</script>

#3


把它当成字符串来传递

#4


问题不清楚,看你怎么赋值的?代码帖出来看看

#5


问题不清楚,看你怎么赋值的?代码帖出来看看

#6


最好能以字符串形式来传输,如果没有加上引号,默认是number类型,变量存储的时候如果0开头的都会被丢弃.
不管后台用什么脚本,应该都是当成字符串传递的吧
var j = "<%=数据库内容%>"

#7


对,同意楼上的意见。但不知你的问题到底是什么样的代码下产生的?

#8


后者通过小数点传达

00001,00002,00103,04032

变为以下格式(.数据)
.00001,.00002,.00103,.04032

也可变为以下格式(保留位数.数据)
5.00001,5.00002,5.00103,5.04032

明白否?




#9


把它当字符串用就行了,随便你怎么传,何必这么麻烦。

#10


产生问题代码如下:
function change_channel(st_id)
{
var str=st_id;
  window.open("channel_change.php?st="+str,"");
}
st_id即位数据库中的00001,00002,等数值.
但是以上代码返回的是1,2
我用的脚本是php

#11


var str=""+st_id;

#12


问题不在于
var str=st_id;
在于传入函数的时候就已经是数字了

在调用的时候修改,如:
change_channel("<%=st_id%>")

#13


by 8988(晓月) & qiushuiwuhen(秋水无恨) method , try :

function change_channel(st_id)
{
  var strVal = valtostr(st_id,5);
  var strUrl = "channel_change.php?st=" + strVal
  window.open(strUrl,"");
}

function valtostr(val,len){
   s=val;
   for (i=0;i<len;i++) s="0"+s;
   return s.substr(s.length-len);
}

#14


修改valtostr函数

function valtostr(val,len){
return ((""+val/Math.pow(10,len)).split(".")[1])
}

#15


谢谢大家

#1


你可以自己写一个函数吗?
这样就可以实现你要的功能了吗?

#2


<script>
x=11;
alert(valtostr(x,5));
function valtostr(val,len){
   s=val;
   for (i=0;i<len;i++) s="0"+s;
   return s.substr(s.length-len);
}
</script>

#3


把它当成字符串来传递

#4


问题不清楚,看你怎么赋值的?代码帖出来看看

#5


问题不清楚,看你怎么赋值的?代码帖出来看看

#6


最好能以字符串形式来传输,如果没有加上引号,默认是number类型,变量存储的时候如果0开头的都会被丢弃.
不管后台用什么脚本,应该都是当成字符串传递的吧
var j = "<%=数据库内容%>"

#7


对,同意楼上的意见。但不知你的问题到底是什么样的代码下产生的?

#8


后者通过小数点传达

00001,00002,00103,04032

变为以下格式(.数据)
.00001,.00002,.00103,.04032

也可变为以下格式(保留位数.数据)
5.00001,5.00002,5.00103,5.04032

明白否?




#9


把它当字符串用就行了,随便你怎么传,何必这么麻烦。

#10


产生问题代码如下:
function change_channel(st_id)
{
var str=st_id;
  window.open("channel_change.php?st="+str,"");
}
st_id即位数据库中的00001,00002,等数值.
但是以上代码返回的是1,2
我用的脚本是php

#11


var str=""+st_id;

#12


问题不在于
var str=st_id;
在于传入函数的时候就已经是数字了

在调用的时候修改,如:
change_channel("<%=st_id%>")

#13


by 8988(晓月) & qiushuiwuhen(秋水无恨) method , try :

function change_channel(st_id)
{
  var strVal = valtostr(st_id,5);
  var strUrl = "channel_change.php?st=" + strVal
  window.open(strUrl,"");
}

function valtostr(val,len){
   s=val;
   for (i=0;i<len;i++) s="0"+s;
   return s.substr(s.length-len);
}

#14


修改valtostr函数

function valtostr(val,len){
return ((""+val/Math.pow(10,len)).split(".")[1])
}

#15


谢谢大家