2015-06-06 3 views
1
  • Элемент списка

просто хотел некоторые мнения по наиболее эффективным способом, чтобы сделать это. У меня есть ввод электронной почты и телефонный ввод. Я использую проверку JQuery, которая работает хорошо. В принципе, они оба не могут быть пустыми. Если предоставляется только один, это нормально. Если оба предоставлены, это тоже хорошо.Как работать с несколькими, если заявления PHP

Каждое поле будет называться собственным API. Если поле телефона предоставлено, оно вызовет API-интерфейс телефона, если будет предоставлено поле электронной почты, он будет вызывать и отправлять по электронной почте API, если оба поля предоставлены, он будет вызывать оба API. Чтобы справиться с этим, я очень многое сделать

if (isset($_POST["email"]) && !empty($_POST["email"])){ 
    //call email API 
} 
if (isset($_POST["phone"]) && !empty($_POST["phone"])){ 
    //call phone API 
} 

Это, кажется, чтобы охватить все случаи выше, хотя может быть более эффективный способ сделать это.

С моей проверкой, я также хочу записывать любое нажатие кнопки отправки (это приведет к отказу проверки, и пользователь не узнает, я просто хочу, чтобы он был записан). Поэтому у меня установлен invalidHandler, и я захватываю значения входов (если есть) и передаю их на PHP.

Что было бы лучшим способом справиться с этим в PHP? Я не хочу, чтобы он стрелял, только если заполнено только одно поле, потому что выше это будет обрабатываться. Я также не хочу, чтобы он стрелял, если оба поля пустые. Я просто хочу, чтобы он срабатывал, если одно или оба поля имеют недопустимые данные (неудачная проверка). Если одно поле имеет действительные данные, а другое - нет, тогда мне не нужно беспокоиться об этом.

Так что действительно просто ищу лучший способ справиться с чем-то подобным на PHP.

Благодаря

+1

Выглядит хорошо. – Kilenaitor

+0

Я тоже отлично смотрю. в чем проблема. это правильно и хорошо. –

+0

Если он не прошел проверку, я не хочу, чтобы он вызывал API. Мне нужно сделать чек на PHP, чтобы проверить, не получилось ли это подтверждение. –

ответ

2

Не уверен, что вы действительно просят, но я подумайте, что вам нужно - это флаг для каждой проверки, а OR opreator:

$flag_phone = $flag_email = false; 
if (phone_has_invalid_data()) { 
    $flag_phone = true; 
} 
if (email_has_invalid_data()) { 
    $flag_email = true; 
} 
if ($flag_email OR $flag_phone) { 
    //throw some error 
} else { 
    //everything ok 
} 

(и, говоря о ненужной оптимизации, код if (isset($var) && !empty($var)) эквивалентен if (!empty($var)))

+0

Это выглядит хорошо, хотя вы можете уйти с одним флагом '$'? Хотя это зависит от того, как пользователь хочет показывать ошибки. –

+0

@SpencerWieczorek Да, вы можете сделать это короче, но я сохранил его «подробный» для ясности – periklis

0

Это достаточно бессмысленно оптимизации, но вы можете сделать это:

if (isset($_POST["email"]) && !empty($_POST["email"])){ 
    //call email API 
} elseif (isset($_POST["phone"]) && !empty($_POST["phone"])){ 
    //call phone API 
} 

Кроме того, она выглядит хорошо

Смежные вопросы