Перебирайте переменные $ _POST и изменяйте неопределенные с помощью PHP - PullRequest
0 голосов
/ 25 октября 2011

Я хочу просмотреть мои переменные PHP $ _POST и изменить все, что является "undefined" (из-за того, как jQuery отправляет его), на "" или, по крайней мере, " ", чтобы при отправке формы электронной почты она не изменялась.не говорите "undefined" везде, где значение не было заполнено (необязательные поля).

Спасибо!

Ответы [ 4 ]

3 голосов
/ 25 октября 2011

Я рекомендую вам рассмотреть возможность изменения вашего javascript для лучшей обработки неопределенностей, НО ..

Вот подход без петель, чтобы сделать это:

$_POST = unserialize(str_replace('s:9:"undefined";', 's:0:"";', serialize($_POST)));

Существует также более типичный подход использования одного цикла, например:

foreach($_POST as &$p) if($p=='undefined') $p = '';

Примечание. Подход serialize + unserialize хорош в том смысле, что он не использует цикл, но подход с использованием цикла, вероятно, немного быстрее, особенно когда $_POST большой.

1 голос
/ 25 октября 2011
if (isset($_POST['var'])) {
    // it is set
} else {
    // it isnt set
}
1 голос
/ 25 октября 2011

В PHP, если вы используете символ & в цикле foreach, он будет использовать его как ссылку, а не значение. Изменение ссылки установит исходное значение.

<?php
$_POST['text1'] = 'undefined';
$_POST['text2'] = 'undefined';
foreach($_POST as &$var)
{
    if($var == 'undefined') 
        $var = '';
}
print_r($_POST);
?>
<!-- Will output -->
array(
    text1=>
    text2=>
)
0 голосов
/ 25 октября 2011
foreach ($_POST as &$var) {
    if ($var === 'undefined') {
        $var = '';
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...