2012-06-20 2 views
1

Можно ли добавить оператор «OR» в php isset отправить код формы, если есть две кнопки отправки с разными именами? Например:PHP isset для отправки формы с помощью оператора или оператора

if (!isset($_POST['submitRequest'] || $_POST['submit'])) 

Приведенный выше код подсказки и ошибки. Пожалуйста посоветуй.

+0

Вы хотите «ИСТИННО», когда оба установлены, оба не установлены или что еще? То, как вы показываете код, сбивает с толку. –

+0

Я хочу, чтобы одна из вещей, чтобы быть правдой submitRequest или отправить –

+1

, пожалуйста, не редактируйте свой вопрос таким образом, чтобы исходный вопрос был потерян. Это вводит в заблуждение для пользователя, который находит этот вопрос позже - ответы не будут соответствовать новому вопросу. – cypherabe

ответ

3

попробовать:

if(isset($_POST['submitRequest']) || isset($_POST['submit'])){ 
    //do something 
} 
0

Нет, это не возможно. Вам нужна каждая переменная в ее собственной функции isset. Вы не можете их комбинировать.

0

Вы можете использовать isset() по нескольким переменным:

if(isset($_POST['submitRequest']) || isset($_POST['submit'])) { 
    // One of them was pushed 
} 

Будьте осторожны при передаче нескольких аргументов в isset(). As the manual documents:

Если задано несколько параметров, то isset() вернет TRUE только в том случае, если установлены все параметры. Оценка идет слева направо и останавливается, как только встречается неустановленная переменная.

So isset($_POST['submitRequest'], $_POST['submit']) будет эквивалентом isset($_POST['submitRequest']) && isset($_POST['submit']). Однако это второе предложение может быть полезно, если вы хотите проверить !isset($_POST['submitRequest']) || !isset($_POST['submit']). Поскольку, когда передано несколько аргументов, isset() вернет false для первого отмененного, вы можете использовать !isset($_POST['submitRequest'], $_POST['submit']).

+0

Для чего был downvote? –

+0

@SalmanA вот-вот должен задать тот же вопрос :) –

0

Я знаю, что неправильно понял исходное сообщение.

if(isset($_POST['submitRequest'])||isset($_POST['submit'])){ 
    // you can do something here 
} 

Оригинал (неверная)

Вы можете использовать это:

if(!isset($_POST['submitRequest'], $_POST['submit'])){ 
    die("Fail"); 
} 

При наличии нескольких параметров поставляются, то функция будет проверять их все. Это вернет TRUE только в том случае, если установлены все параметры.

Ссылка: http://php.net/manual/en/function.isset.php

+0

Он будет эхо-сбой, если какая-либо из переменных не установлена. Он должен эхо-сбой, если BOTH-переменные не установлены. –

+0

Я хочу, чтобы это было правдой, если один из параметров установлен –

0

Это не как использовать или оператора. Вы должны поставить его между двумя вызовами isset.

if (! isset($_POST['submitRequest']) || isset($_POST['submit'])) { } 

Вы всегда должны хорошо взглянуть на синтаксис. Помните, что оператор или используется для того, чтобы все условие оценивалось как true, если левое условие или правильное условие истинно. Таким образом, вам всегда нужно использовать оператор или с двумя условиями.

Кроме того, если вы хотите сделать это с помощью оператора и, вы можете просто использовать один вызов isset.

if (isset($_POST['username'], $_POST['password'])) { } 
+0

Вторая строка кода возвращает true, если * оба * установлены. Это соответствовало бы «и», а не «или». –

+0

Да, прочитайте комментарий, который я сделал выше. Это именно то, что я сказал. –

+0

@ TinovanderLaan Извинения. По какой-то причине я читаю «или» вместо «и». –

0

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

if(isset($_POST['submitRequest']) || isset($_POST['submit'])){ 
    //do something 
} 

if(isset($_POST['submitRequest']) OR isset($_POST['submit'])){ 
    //do something 
} 
0

разработать немного:

isset(), empty() и некоторые другие являются не функционирует, но язык конструирует. Таким образом, они не работают во всех отношениях, которые, по их мнению, могут выглядеть как функции.

Важная часть здесь: Они проверяют только переменные, они не могут и не оценивают результаты выражений. Использование || делает $_POST['submitRequest'] || $_POST['submit'] выражение. Результат вычисляется только временно, не сохраняется в определенной переменной, которая может быть установлена ​​или пуста.

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