2015-03-26 2 views
0

В настоящее время я использую флажки в форме и хочу сохранить значение флажка в столбце базы данных типа int. Каким будет наиболее эффективный способ достичь этого. Я уже пробовал перебрасывать переменную в (int), но пока ничего не сделал для меня.Boolean to integer in php

HTML: <input name='active' id='active' ng-model='formData.active' ng-init='formData.active=true' type="checkbox"> Active </br> 


PHP: 
$active = (int) $_POST['active']; 
echo $active; 
echo $_POST['active']; 

Output: 
0 
true 

Примечание: Я пытаюсь реализовать это без ужасной инструкции или переключателя if.

+0

имя в форме 'sticky' и вы к нему доступ с помощью' $ _POST [ «активный»] '!! – Shubanker

+0

@Subhanker, который был только что меня обновил. –

ответ

0

$_POST переменная флажок будет установлен только если флажок установлен, так что вы можете использовать что-то вроде этого:

$active = isset($_POST['active']) ? 1 : 0; 

Я подозреваю, что вы получаете строку «истина», а не логическое «истинный» в этом случае вы можете использовать подобную конструкцию:

$active = $_POST['active'] === "true" ? 1 : 0; 
+0

Я не использую почтовые запросы 'vanilla', поэтому это не сработает, я уже пробовал;) 1, false –

+0

@MattMc, пожалуйста, см. Мое последнее редактирование. Кроме того, не могли бы вы рассказать нам, что результат 'var_dump ($ _ POST ['active'])' is? Я предполагаю, что это строка «true». –

+1

lol проверить последний отправленный ответ, я просто дернул. в любом случае спасибо. действительно, это была строка –

0

раствор в https://stackoverflow.com/a/29288171/3923450 должен работать,

, но если вы ищете встроенные функции, попробуйте

intval 
+0

, которая настолько странная, что intval тоже не работает? 0, true –

0

добавить атрибут значение во входном теге

<input name='active' value='1' ...> 

Теперь он должен работать так, как вам нужно.

+0

lol thats невозможно, так как я использую угловой. –

0

Кулак всего, ваш вклад в HTML является «липким» и в PHP вы проверяете «активный ». Но в любом случае, попробуйте в PHP следующий тест:

if (isset($_POST['sticky']) and ($_POST['sticky']=='on')) $active=1; 
else $active=0; 
+0

Это изменение было отредактировано 13 минут назад за 12 минут до вашего ответа. – Shubanker