Не удалось получить пустое значение формы из данных $ _POST, добавив имя в качестве значения? (JQuery проверить AJAX) - PullRequest
0 голосов
/ 24 августа 2011

Я использую jquery validate и ajax для публикации формы, но хочу опубликовать пустое поле с моими данными и использую:

<input type="text" name="blank" class="blank" />

При отправке формы с этим полем с помощью php отправьте значение для$ _POST ['blank'] является "пустым", а не "", как ожидалось.

Это также тот случай, когда при попытке

 <input type="text" name="blank" class="blank" value=""/>

Если я использую это:

<input type="text" name="blank" class="blank" value="this_value"/>

, я получаю «this_value» для $ _POST ['blank'] как и ожидалось.

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

Кто-нибудь сталкивался с этим и знаетисправить?

Ответы [ 2 ]

0 голосов
/ 22 декабря 2011

РЕДАКТИРОВАТЬ: я был не прав.Оригинальный ответ верен только в контексте форм, помеченных флажками.

Браузеры не отправляют на сервер поля с пустыми атрибутами 'value'.Лучший способ назначить переменную на стороне сервера - использовать троичный оператор с условием isset ():

<?php 
    $blank = isset($_POST['blank']) ? $POST['blank'] : '' ;
?>

Подробнее о троичном операторе php: http://us3.php.net/ternary#language.operators.comparison.ternary См. «Пример # 2».значение по умолчанию "

0 голосов
/ 24 августа 2011

Я сталкивался с этим раньше, и самым простым решением для меня было попытаться найти, существует ли поле в $ _POST и, если нет, предположить, что оно пустое:

<?php
if (array_key_exists('blank',$_POST)===FALSE)
{
    $blank='';
} else
{
    $blank=$_POST['blank'];
}
?>
...