私はポストphpフォームと入力のセットを持っています:
すべての入力は同じように見えますが、名前だけが変わります。
_<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スクリプトがあります。したがって、フォームに「マイク」を表示させる方法がわかりません。私の入力。
最初に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を変更して、空の文字列(または他の文字列)を返します。
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;
}
これは、$ _ POSTが読み取られると、値が$ _POST値から入力され、それ以外の場合はデフォルトのMikeが設定される、同様の問題でこの問題を解決した方法です。
value="<?php if (isset($_POST['name'])) echo $_POST['name']; else echo "Mike"?>" >
これがいつか誰かに役立つことを願っています
<input type="text" name="your_name" value="<?php echo empty(get_option('your_name')) ? "TheDefaultValue" : get_option('your_name'); ?>" />
この場合、私の小さなライブラリ 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 を確認してください
Switchステートメントを実行して、デフォルトを希望どおりにすることができます。
value
がデフォルトなので、get_option
-関数の周りに条件を追加するだけです。おそらく次のようになります。
<input type="text" name="your_name" value="<?php $var = get_option('your_name'); if ($var == '') $var = 'your_default'; echo $var; ?>" />
三項演算子を使用するだけです。とても簡単にこれを試してみてください
$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; ?>" />
私はテネフに同意しますが、私はそれを打ち破ります。
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;
?>