我的号码是这样的:
0065921922572
我将此值作为参数传递给JavaScript中的函数。
当我提醒数据时,它会显示:
65921922572
(前面的00被移除)
我试图将数字转换为字符串,但它仍然给我相同的值。
我该怎么做才能得到正确的数字?
在javascript中的功能:
//function that creates posts
var postHandler = function(postsJSON,ctr) {
$.each(postsJSON,function(i,post) {
ctr++;
var id = 'post-' + post.code;
//create the HTML
$('<div></div>')
.addClass('post')
.attr('id',id)
//generate the HTML
.html(ctr + ". <input type='checkbox' name='item" + ctr +
"' id='item" + ctr + "' value='" + post.code +"' onClick='countElem("+ ctr +
")'> <input type='hidden' name='tick"+ ctr +"' id='tick"+ ctr +"'>" + post.code +
" -- " + post.description + " <input type='button' name='del_item' id='del_item'" +
" class='but' style='margin-right:100px;' value='x' onclick='delProduct("+ post.code +")'>")
//inject into the container
.appendTo($('#posts'))
.hide()
.slideDown(250,function() {
if(i == 0) {
$.scrollTo($('div#' + id));
}
});
});
};
php中的功能:
function get_posts($start = 0, $number_of_posts = 300) {
$posts = array();
/* get the posts */
$query = "SELECT distinct(code), description FROM sales_order, outstanding
WHERE sales_order.id = outstanding.so_id AND sales_order.outstanding = 'Y'
AND outstanding.out_status = '' AND sales_order.status
NOT IN ('sta_deliver', 'otw_deliver', 'com_deliver', 'cancel') order by description asc LIMIT $start, $number_of_posts";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result)) {
//preg_match("/(.*)/",$row['description'],$matches);
//$row['description'] = strip_tags($matches[1]);
if($row['code'] != '')
{
$strnum = (string)($row['code']);
$row['code'] = $strnum;
}
$posts[] = $row;
}
/* return the posts in the JSON format */
return json_encode($posts);
}
答案 0 :(得分:0)
你检查过这个:http://www.webtoolkit.info/javascript-pad.html 我认为处理填充字符串的最简单方法是创建一个pad函数,简单,清晰,不使用像slice,数组等技巧。 您可能需要一个简单而可靠的功能,而不是艺术的顶级。
此致 Radu Cosoveanu
答案 1 :(得分:0)
确保在您的JSON中,您的条形码值是字符串而不是数字。
当JavaScript将值作为数字获取时,它会将0视为不需要,然后自动将其删除。
作为字符串:{ "barcode" : "0065921922572" }
作为数字:{ "barcode" : 0065921922572 }
答案 2 :(得分:0)
由于你的代码不完整,很难说什么是错的。很高兴看到从服务器接收请求的代码。巫婆的反应实际上得到了它并将它传递给postHandler或改变它。
好像你强制“代码”字符串给出答案,如[{“code”:“00122”}]
在[{“code”:“00122”}]上使用$ .parseJSON将00122作为字符串。
但是如果你想快速批处理,你可以在代码之前添加一个空格并用javascript修剪它。
在PHP中替换:
$strnum = (string)($row['code']);
到
$strnum = " " . $row['code'];
并在javascript中,在
之后$.each(postsJSON,function(i,post) {
添加一行
post.code = $.trim(post.code);