0

我有这样的号码:

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);
}   
4

3 回答 3

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);
于 2012-11-29T21:33:27.350 回答
0

你检查过这个:http ://www.webtoolkit.info/javascript-pad.html 我认为处理填充字符串的最简单方法是创建一个填充函数,简单、清晰,不使用切片、数组等技巧上。您可能需要一个简单可靠的功能,而不是顶级的艺术。

问候, 拉杜·科索韦努

于 2012-11-29T02:33:36.290 回答
0

确保在您的 JSON 中,您的条形码值是字符串而不是数字。

当 JavaScript 将值作为数字获取时,它将认为 0 是不需要的,随后会自动删除它们。

作为一个字符串:{ "barcode" : "0065921922572" }

作为一个数字:{ "barcode" : 0065921922572 }

于 2012-11-29T03:19:20.920 回答