Если переменная PHP пуста, ничего не вернуть; и если он не пустой, верните его в скобках - PullRequest
0 голосов
/ 06 апреля 2011

Я борюсь с формой, которую я построил, и мне нужна помощь от вас, хороших людей.Я попробовал несколько методов, используя мои чрезвычайно базовые знания о массивах, а также функции взрыва и пустых функций, но я все еще застрял ...

Это базовая версия HTML:

<input type="radio" name="os_used" class="radio" value="windows" />
<input type="radio" name="os_used" class="radio" value="mac" />
<input type="radio" name="os_used" class="radio" value="other" />
<input type="text" name="os_name" class="text" />

И это PHP, который использует вышеупомянутый HTML:

$os_used = $_REQUEST["os_used"] ;
$os_name = $_REQUEST["os_name"] ;
$message = "operating system: $os_used ($os_name)" ;

Затем сообщение отправляется на мой адрес электронной почты.

В форме, если ввод с именем «other»При выборе этого параметра появляется текстовое поле 'os_name', предлагающее пользователю указать, какую операционную систему он использует.Затем он возвращается по электронной почте, которую я отправляю после отправки формы.Единственная проблема в том, что в 99% случаев «other_os» не будет выбран, и я получу это по электронной почте: «operating system: mac ()» или «operating system: windows ()».Поэтому я бы хотел, чтобы квадратные скобки отображались только в том случае, если выбран переключатель «прочее», возвращая что-то вроде «операционная система: другое (linux)», а скобки не было бы, если бы были «mac» или «windows».selected.

Так что я думаю, что скобки должны были бы быть объединены по обе стороны от переменной $ os_name и установлены как переменные сами по себе, которые будут появляться только при условии, что $ os_name имеет любое введенное значениев это на форме.Я в тупике!

Спасибо за ваше время,

Мартин.

Ответы [ 3 ]

2 голосов
/ 06 апреля 2011

Попробуйте код ниже.

$os_used = $_REQUEST["os_used"] ;
$os_name = $_REQUEST["os_name"] ;

if ($os_name) {
    $message = "operating system: other ($os_name)";
} else {
    $message = "operating system: $os_used";
}
1 голос
/ 06 апреля 2011

Вы действительно хотите проверить, что это не просто пробел, для которого вы можете использовать trim ().

$formatted_os = trim($os_name)? '('.$os_name.')' : '';

Просто вставьте это после того, как вы нажмете $_REQUEST['os_name'] и до создания сообщения. При желании вместо использования второй переменной $formatted_os вы можете просто перезаписать $os_name.

1 голос
/ 06 апреля 2011

() = Скобки.[] = Скобки.Важное различие.

$message = "Operating System: $os_used ";
if ($os_name!="") $message.="($os_name)";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...