HTML / PHP - 默认输入值

时间:2011-05-16 12:47:20

标签: php forms input default-value

我有一个帖子php表单和一组输入:

  1. 您的姓名
  2. 您的姓氏
  3. 我的名字
  4. 每个输入看起来都一样,只有名称改变:

    <input type="text" name="your_name" value="<?php echo get_option('your_name'); ?>" />
    

    当value =不可用时如何设置默认值?

    [编辑]

    好的,通常我会做类似的事情:

    <input type="text" name="your_name" value="Mike" />
    

    但在这种情况下,我有一个PHP脚本,它抓取输入数据并使用value="<?php echo get_option('your_name'); ?>"显示它。所以我不知道如何强制我的表单在我的输入中显示“Mike”。

11 个答案:

答案 0 :(得分:5)

您需要首先检查get_option的返回值,并在默认值不可用时替换某些内容

<?php
    $default = get_option('your_name');
    if( $default == "")
    {
        $default = <whatever your default value is>;
    }
?>
<input type="text" name="your_name" value="<?php echo $default; ?>" />

如果默认值不可用,请将get_option更改为返回空字符串(或其他内容)。

答案 1 :(得分:2)

您可以将get_option()功能更改为

function get_option($name) {
   $defaults = array(
      'fist_name' => 'Mike',
      'fist_name' => 'Wordpressor',
      'my_name' => 'Dunno'
   );
   // get the value from the $defaults array
   $val = $defaults[$name];

   // but if the same value has already been posted - replace the default one
   if (isset($_POST[$name])) {
      $val = $_POST[$name];
   }
   return $val;
}

答案 2 :(得分:1)

这是我如何在我的问题中解决这个问题,我认为是类似的,当读取$ _POST时,值从$ _POST值填充,否则设置默认值为Mike

value="<?php if (isset($_POST['name'])) echo $_POST['name']; else echo "Mike"?>" >

希望这可以帮助某人继续

答案 3 :(得分:0)

您可以执行switch语句,并且默认为您想要的任何语句。

答案 4 :(得分:0)

由于value是默认值,只需在get_option - 函数周围添加一个条件,可能是这样的:

<input type="text" name="your_name" value="<?php $var = get_option('your_name'); if ($var == '') $var = 'your_default'; echo $var; ?>" />

答案 5 :(得分:0)

我同意Teneff但我会将其分解。

在index.php中,我会在文档顶部有以下内容

<?
$defaultText = include 'default_text.php';  
?>

你的表格是:

<form method="post" action="">
<input id="names"><? echo $defaultText; ?> </input> 
</form> 

然后我会在根级别上有一个名为“default_text.php”的单独文件。

<?
$Name = <<<EOD Name EOD;
return $Name;
?>

答案 6 :(得分:0)

<input type="text" name="your_name" value="<?php echo empty(get_option('your_name')) ? "TheDefaultValue" : get_option('your_name'); ?>" />

答案 7 :(得分:0)

在这种情况下,您可以使用我的小型库ValueResolver,例如:

$default = ValueResolver::resolve(get_option('your_name'), '<whatever your default value is>');

并且不要忘记使用命名空间use LapaLabs\ValueResolver\Resolver\ValueResolver;

还可以进行类型转换,例如,如果变量的值应该是integer,那么请使用:

$id = ValueResolver::toInteger('6 apples', 1); // returns 6
$id = ValueResolver::toInteger('There are no apples', 1); // returns 1 (used default value)

查看docs了解更多示例

答案 8 :(得分:0)

只需使用三元运算符即可。很容易尝试这个

$default = 'Mike';

$your_name = get_option('your_name');

$condition = !empty($your_name) ? $your_name : $default;

<input type="text" name="your_name" value="<?php echo $condition; ?>" />

答案 9 :(得分:0)

您可以将 get_option 的值存储在一个变量中,并使用 php null 合并运算符设置默认值(如果存在)。

<?php $value = get_option('your_name');?>

<input type="text" name="your_name" value="<?php echo $value ?? NULL; ?>">

答案 10 :(得分:-2)

使用post变量在开头设置一些变量。

$name_val = "";
if(isset($_POST["your_name"])
{
    $name_val = $_POST["your_name"];
}

<input type="text" name="your_name" value="<?= $name_val?>">