如何在前面获得0的完整数字

时间:2012-11-29 02:19:01

标签: php javascript jquery sql string-formatting

我的号码是这样的:

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 +  ".&nbsp;&nbsp;&nbsp;<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 + "&nbsp;&nbsp;&nbsp;&nbsp;<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);
}   

3 个答案:

答案 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);