gpt4 book ai didi

php - 使用空变量和格式化数字

转载 作者:行者123 更新时间:2023-11-30 00:43:27 24 4
gpt4 key购买 nike

我的页面上有一堆涉及数字的文本框。创建数据库时,数据库中的默认值为 NULL,并且我让每个输入都回显数据库中的值(默认情况下没有任何内容,因为它设置为 null) 。

我遇到的问题是,如果用户第一次打开表单,提交表单并且没有填写项目,则值将变为 0 而不是保留它

有人可以帮助我吗?

<小时/>

当用户打开页面时,它会格式化数字,如下所示:

if(isset($data['variable1']))
$variable1 = numberFormat($data['variable1']);
else
$variable1 = "";

当用户发布表单时,它会取消数字的格式,如下所示:

$variable1 = numberUnformat($_POST['variable1']);

我什至尝试过这样做:

if(isset($_POST['variable1']))
$variable1 = numberUnformat($_POST['variable1']);
else
$variable1 = "";
<小时/>

numberFormat()

function numberFormat($n, $n_decimals="2")
{
return ((floor($n) == round($n, $n_decimals)) ? number_format($n) : number_format($n, $n_decimals));
}

numberUnformat()

function numberUnformat($number)
{
$cleanString = preg_replace('/[^0-9.,-]|(?<=.)-/', '', $number);
$onlyNumbersString = preg_replace('/[^0-9-]|(?<=.)-/', '', $number);

$separatorsCountToBeErased = strlen($cleanString) - strlen($onlyNumbersString) - 1;
$stringWithCommaOrDot = preg_replace('/([,\.])/', '', $cleanString, $separatorsCountToBeErased);
$removedThousendSeparator = preg_replace('/(\.|,)(?=[0-9]{3,}$)/', '', $stringWithCommaOrDot);

return (float) str_replace(',', '.', $removedThousendSeparator);
}

最佳答案

if(isset($_POST['variable1']))

$_POST['variable1'] 如果它是表单的一部分,则始终被设置。 HTTP POST 值(或通过 HTTP 传输的任何其他内容)永远不会 null,因为这不是 HTTP 中的类型。最好是一个空字符串,它不是 null,因此上述条件始终为 true,并且您的 unformat 函数将始终返回 0

您必须检查 strlen($_POST['variable1']) > 0$_POST['variable1'] !== '' .

关于php - 使用空变量和格式化数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21581984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com