HTML / PHP - входное значение по умолчанию - PullRequest
8 голосов
/ 16 мая 2011

У меня есть форма post php и набор входных данных:

  1. Ваше имя
  2. Ваша фамилия
  3. Мое имя

Каждый ввод выглядит одинаково, меняются только имена:

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

Как установить значения по умолчанию, когда значение = недоступно?

[править]

Хорошо, обычно я делал бы что-то вроде:

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

Но в этом случае у меня есть PHP-скрипт, который захватывает входные данные и отображает их, используя value="<?php echo get_option('your_name'); ?>". Поэтому я понятия не имею, как заставить мою форму отображать «Mike» в моих входных данных.

Ответы [ 10 ]

5 голосов
/ 16 мая 2011

Сначала необходимо проверить возвращение 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, чтобы оно возвращало пустую строку (или что-то еще), если значение по умолчанию недоступно.

2 голосов
/ 16 мая 2011

вы можете изменить функцию 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;
}
1 голос
/ 11 ноября 2015

Вот как я решил эту проблему в своей проблеме, которая, на мой взгляд, похожа, когда читается $ _POST, значение заполняется из значения $ _POST, иначе устанавливается значение по умолчанию Mike

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

Надеюсь, это поможет кому-то в один день

0 голосов
/ 27 сентября 2017

Просто используйте троичный оператор. это довольно легко попробовать это

$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 голосов
/ 09 июля 2015

Вы можете использовать мою крошечную библиотеку 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)

Проверьте документы для большего количества примеров

0 голосов
/ 28 февраля 2013
<input type="text" name="your_name" value="<?php echo empty(get_option('your_name')) ? "TheDefaultValue" : get_option('your_name'); ?>" />
0 голосов
/ 28 февраля 2013

Я согласен с Тенеффом, но я бы вырвался.

В 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 голосов
/ 16 мая 2011

Так как value является значением по умолчанию, просто добавьте условие к вашей get_option -функции, возможно, что-то вроде этого:

<input type="text" name="your_name" value="<?php $var = get_option('your_name'); if ($var == '') $var = 'your_default'; echo $var; ?>" />
0 голосов
/ 16 мая 2011

Установить некоторую переменную при запуске с переменными записи.

как

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

<input type="text" name="your_name" value="<?= $name_val?>">
0 голосов
/ 16 мая 2011

Вы можете сделать оператор switch и иметь значение по умолчанию, равное тому, что вы хотите.

...