Захватив логическое значение из checkbox в PHP
Я делаю форму, где пользователь должен сообщить вам, если продукт или не используется, но у меня возникают трудности в том, чтобы захватить значение этого checkbox
, 1
, 0
, mysql
столбец уже setada boolean
,default 0
Logica-добавляет продукт.php
<?php
include("conecta.php");
#Variáveis para cadastrar
$nome = $_POST["nome-produto"];
$preco = $_POST["preco-produto"];
$descricao = $_POST["descricao-produto"];
#Caso de verificação da variável booleana
$usado = $_POST["usado-produto"];
if(array_key_exists($usado, $_POST)) {
$usado = "true";
}else{
$usado = "false";
}
#Query de inserção
$query = "insert into produtos(nome, preco, descricao, usado) values('{$nome}', '{$preco}', '{$descricao}', {$usado})";
#Variável para executar a inserção
$retornoInsercao = mysqli_query($conexao, $query);
#Teste para verificar inserção
if($retornoInsercao){
header("Location:index.php");
die();
}else{
};
?>
Добавляет продуктов.php
<?php
include("header.php");
include("conecta.php");
?>
<form action="logica-adiciona-produto.php" method="post">
<fieldset>
<label>Nome:</label>
<input type="text" name="nome-produto">
<label>Preço:</label>
<input type="number" name="preco-produto">
</fieldset>
<fieldset>
<label>Usado ?</label>
<input type="checkbox" name="usado-produto" value="true">
<label>Categoria:</label>
<select name="">
</select>
<label>Descricao:</label>
<textarea name="descricao-produto"></textarea>
</fieldset>
<fieldset>
<input type="submit">
</fieldset>
</form>
3
Author: Murilo Melo, 2016-12-03
1 answers
Ваш код неправильно, отправляет переменную, что не согласуется с именем ключа, пожалуйста, обратите внимание:
Замените:
#Caso de verificação da variável booleana
$usado = $_POST["usado-produto"];
if(array_key_exists($usado, $_POST)) {
$usado = "true";
}else{
$usado = "false";
}
поэтому:
$usado = array_key_exists('usado-produto', $_POST) ? 1 : 0;
Объяснение:
структура функции array_key_exists
bool array_key_exists ( mixed $key , array $array )
, Где во-первых paramentro-это имя ключа, искать внутри array
и по array
сам метод, который возвращает true (true
) или false (false
) в результате, если нашли или нет ...
Или же
$usado = isset($_POST['usado-produto']) ? 1 : 0;
Ссылается на: array_key_exists
2
Author: novic, 2016-12-03 22:53:09