1

我认为这应该很简单,但我无法理解它。

我有一个文本字段,需要用默认值(数字)填充。所以也许它第一次加载时应该说“1”。但用户应该能够将其更改为任何数字 - 正数、负数或 0,然后保存。

数据库中的默认值不是一个选项,因为系统是如何组成的,并且它可能需要在未来通过其他方式而不是直接在数据库中进行更改。

我怎么做?

需要详细说明... :-)

它是一个时间表,用户有一定的时间来做一个阶段。该时间由 2 个“天数”字段组成。用户可以操作的第二个,如果他们知道它可以更快或更慢地完成。第二个也是保存默认值的那个。所以也许他们有 10 天,可以是 6 + 4,然后他们可以将最后一天更改为任何数字负数、正数和零。所以第一次加载页面时,该字段应该显示默认值(4),之后应该显示用户已经输入。这两个字段的总和,最终将被计算到时间表中。也许 null 是最好的方法

我已经按照@nihiser 的建议从一开始就将 DB 值设为 NULL 来解决它,然后像这样结束代码:value="<?php echo (is_null($res['r531e'])) ? 1 : $res['r531e']; ?>"其中 1 是该特定字段的默认值。

但我想知道是否可以只在代码中做,所以我不必在数据库中使用 NULL?

4

3 回答 3

0

你有没有尝试过 :

<input type='text' value='1' />

它应该做的工作...

于 2020-05-05T12:48:56.453 回答
0
<input type='text' value="<?php echo isset($value) ? $value : 1; ?>" />

如果数据库中未设置该值,则需要有一个默认值。如果您查询该值并将其设置在 $value 变量中,则仅当记录存在时才会设置它,因此带有 isset 函数的三元组只有在找到记录时才为真。因此,如果没有记录,则该值为 1。一旦提交表单,该值将被设置。

于 2020-05-07T09:20:58.913 回答
0

假设您已经从 $value 变量中的数据库中获取了值,那么您可以使用三元运算符来显示该值

<input type='text' value="<?php echo (!empty($value) || $value==0) ? $value : 1 ?>" />
//Put your Default value instead of 1.
于 2020-05-05T13:30:41.163 回答