在文本框中显示字段的实际值

时间:2013-02-19 04:07:14

标签: php javascript html

我在php中制作插入记录代码然后我需要制作一个自动代码,或者用户只需查看文本框的准备值,我只需使用此代码。

$ayos = mysql_fetch_array(mysql_query("select ib_code from item_brand order by ib_code desc limit 1"));
            $new_val = $ayos['ib_code'] + 1;

当你显示它时只需使用:

echo $ayos['ib_code'];

例如输出 006 。我无法解决的问题是,当我尝试在文本框中显示 $ new_val 的值时,如果$ ayos [' ib_code'] = 006则确定我们的预期结果new_val等于007,但问题是它在文本框内显示时只有7而不是007 .. thx

The screenshot of my problem thx guys!

5 个答案:

答案 0 :(得分:1)

尝试

如果要显示左边用零填充的数字,请考虑使用printf()(或其众多亲属之一)。

经过测试的示例:

<?php
    $a = '006';
    $b = $a + 1;
?>
<input type="text" value="<?php printf("%03d", $b); ?>" />

以上代码经过测试。

sprintf()可以做到这一点:

echo sprintf('%03d', $ayos['ib_code']);

或使用str_pad() - 但代码中的时间稍长:

echo str_pad($ayos['ib_code'], 3, 0, STR_PAD_LEFT);

对某些用户评论的回复

如果有0006000006等值,那么我们可以使用上面的代码如下。

<?php
    $a = '000006';
    $b = $a + 1;
?>
<input type="text" value="<?php printf("%0".strlen($a)."d", $b); ?>" />

我正在做的是传递length dynamically所以如果以后编号size increase代码仍然按预期工作。

答案 1 :(得分:0)

使用+运算符强制PHP将变量解释为数字,这将截断任何前导零。你最有可能必须做一些有趣的字符串操作。

答案 2 :(得分:0)

006 ins已转换为number,之后会向其添加1,当它从左侧变为7时变为number it truncates zeros。使用下面的代码,它会将0填充到左侧。

echo str_pad($ayos['ib_code'], 3, "0", STR_PAD_LEFT); //becomes 007

答案 3 :(得分:0)

使用$realnumber = intval($new_val);

echo $realnumber;

答案 4 :(得分:0)

分配$new_val变量,如下所示:

//GET count of leading 0's into variable
$leading_zero_count = strspn($ayos['ib_code'], "0");    
$new_val = $ayos['ib_code']+1;
/** 
  * Pad the $new_val variable with 0's so that 
  * new length = total leading 0's + new length of $new_val
**/
$new_val = str_pad ($new_val, $leading_zero_count+strlen($new_val),0, STR_PAD_LEFT);