web-dev-qa-db-ja.com

HTML / PHP-デフォルトの入力値

私はポストphpフォームと入力のセットを持っています:

  1. あなたの名前
  2. あなたの名字
  3. 自分の名前

すべての入力は同じように見えますが、名前だけが変わります。

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

Value =が利用できない場合にデフォルト値を設定するにはどうすればよいですか?

[編集]

わかりました、それで、通常私は次のようなことをします:

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

しかし、この場合、入力データを取得してvalue="<?php echo get_option('your_name'); ?>"を使用して表示するPHPスクリプトがあります。したがって、フォームに「マイク」を表示させる方法がわかりません。私の入力。

8
Wordpressor

最初に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を変更して、空の文字列(または他の文字列)を返します。

5
Steve Mallory

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
Teneff

これは、$ _ POSTが読み取られると、値が$ _POST値から入力され、それ以外の場合はデフォルトのMikeが設定される、同様の問題でこの問題を解決した方法です。

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

これがいつか誰かに役立つことを願っています

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

この場合、私の小さなライブラリ 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 を確認してください

0

Switchステートメントを実行して、デフォルトを希望どおりにすることができます。

0
Kamil Sindi

valueがデフォルトなので、get_option-関数の周りに条件を追加するだけです。おそらく次のようになります。

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

三項演算子を使用するだけです。とても簡単にこれを試してみてください

$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; ?>" />
0
Mohammad Faisal

私はテネフに同意しますが、私はそれを打ち破ります。

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;
?>
0
terra823