0
Guys, I would like a help to know how to insert this my FORM correctly. The current code that I have works well when there are 1 or 2 products in the order, but with 3 or more it no longer works, besides that when the "Total Value or Unitario " of the order or products is greater than R $ 1000, it falls as 1.0 in the BD. Could you help me ?
main.php:
<form action="pedido.php" method="POST" id="form-send">
<div id="duplicata">
<div class="container" id="cabecalho">
<br>
<header class="cabecalho">
<div class="wrap-header">
<div class="imagem-header">
<img src="imagens/logo_ip.png" alt="Logo Varejão Irmaãos Patrocinio">
<h1>Pedidos - Varejão Irmãos Patrocinio</h1>
</div>
<div class="dados-header">
<div id="pedido">
<b>ID do Pedido: </b>
<input id="id-pedido" class="input-div" readonly="true" name="id_pedido">
</div>
<div id="loja">
<b>Loja:</b> <input type="text" id="loja" name="loja" class="input-div" value="<?php echo $_SESSION['loja']; ?>" readonly="true">
</div>
<div id="data">
<b>Data: </b>
<input id="data-atual" class="input-div" readonly="true" name="data_atual">
</div>
</div>
</div>
</header>
</div>
<div class="container" id="fornecedores">
<div class="title-padrao">
<h1 class="text-center">Fornecedor</h1>
</div>
<div class="fornecedores-wrap col-lg-12">
<div class="col-xs-1 col-sm-1 col-md-1 col-lg-1 select_height text-center"
id="div_id_fornecedor">
<b>ID:</b>
<input id="fornecedor-id" class="font-pop input-div" name="fornecedor_id" readonly="true" required>
</div>
<div class="col-xs-5 col-sm-5 col-md-5 col-lg-8 select_height" id="div_fornecedores">
<!-- selectpicker é o elemento que coloca o input e o select juntos -->
<b id="text-fornecedor">Selecione um fornecedor:</b>
<select class="selectpicker form-control" data-show-subtext="false"
data-live-search="true"
name="select_fornecedor" id="select_fornecedor"
onchange="initFornecedores()" required>
<?php
echo '<option disabled selected hidden value="Selecione um fornecedor..." data-subtext="Selecione um fornecedor...">Selecione um fornecedor...</option>';
foreach ($result1 as $item_fornecedores) {
echo '<option data-subtext="' . $item_fornecedores['nome'] . '" value="'
. $item_fornecedores['nome'] . '">' . $item_fornecedores['nome'] . '</option>';
}
?>
</select>
<input type="text" name="fornecedor_new_input" id="fornecedor_new_input"
style="display: none" placeholder="Digite o nome do Fornecedor...">
<input type="checkbox" id="change_fornecedor" name="change_fornecedor"
value="Fornecedor não cadastrado">
<label for="change_fornecedor" id="checkbox-fornecedor-text">Fornecedor
não cadastrado</label>
</div>
<div class="col-xs-5 col-sm-5 col-md-5 col-lg-3 text-center select_height"
id="div_cnpj_fornecedor">
<b>CNPJ</b>
<input name="cnpj" minlength="12" maxlength="14" class="font-pop" id="cnpj" value="00.000.000/0000-00" required>
</div>
</div>
</div>
<div class="container" id="produtos">
<div class="separator"></div>
<div class="title-padrao">
<h1 class="text-center">
Produtos
</h1>
</div>
<div id="allProducts">
<div class="produtos-wrap" name="produtos-wrap"> <!---- DIV A SER CLONADA / ADICIONADA !---->
<div class=" text-center select_height primeira">
<b>Item:</b>
<br>
<input type="text" class="index font-pop input-div" id="index_produto"
name="index_produto[]" value="1" readonly="true" required>
</div>
<div class="text-center select_height segunda">
<b>ID:</b>
<br>
<input class="font-pop number_id_produto input-div" value="" readonly="true"
name="id_produto[]" required>
</div>
<div class="select-produto select_height terceira">
<b>Selecione um produto:</b>
<select class="selectpicker form-control" data-show-subtext="false"
data-live-search="true" name="select_produtos[]" id="select_produtos"
onchange="initProdutos(this)" required>
<?php
echo '<option disabled selected hidden value="Selecione um produto..." data-subtext="Selecione um produto...">Selecione um produto...</option>';
foreach ($result2 as $item_produtos) {
echo '<option data-subtext="' . $item_produtos['desc_produto'] . '" value="'
. $item_produtos['desc_produto'] . '">' . $item_produtos['desc_produto'] . '</option>';
}
?>
</select>
</div>
<div class="text-center select_height quarta">
<b>Embalagem:</b>
<br>
<input type="text" maxlength="2" class="edit-input font-pop" name="embalagem[]"
value="" required>
</div>
<div class="text-center select_height quinta">
<b>Preço:</b>
<br>
<input type="number" id="preco-input" name="preco[]"
oninput="this.value = Math.abs(this.value)" min="0" class="edit-input font-pop"
value="" required>
</div>
<div class="text-center select_height sexta">
<b>Quantidade:</b>
<br>
<input type="number" id="qtd-input" oninput="this.value = Math.abs(this.value)" min="0"
class="edit-input font-pop"
value="" name="quantidade-produto[]" required>
</div>
<div class="text-center select_height text-right setima">
<b>Preço do Produto:</b>
<br>
<input class="font-pop preco-produto input-div" readonly="true" name="preco-produto[]" required>
</div>
<div class="text-center select_height oitava" id="div-remove">
<button type="button"
class="remover glyphicon glyphicon-remove button-produto">
</button>
</div>
</div>
</div>
<div id="wrap-addbutton">
<button type="button" id="add-button" class="glyphicon glyphicon-plus-sign button-produto"></button>
<b>Adicione um produto...</b>
</div>
</div>
<div class="container" id="produto-total">
<div class="col-lg-12">
<div class="assinatura col-lg-9">
<div id="wrap-assinatura" class="text-center">
<div id="assinatura"></div>
<b>Assinatura</b>
</div>
</div>
<div class="preco-final col-lg-12 text-right">
<b>Preço Total:</b>
<br>
<input id="total" readonly="true" name="total_pedido" class="text-right input-div"
value="R$ 0,00" required>
</div>
</div>
</div>
<div class="container" id="envia-formulario">
<input onclick="segundaVia()" type="button" id="segunda-via" value="Concluir Pedido"
data-toggle="modal" data-target="#myModal">
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Confirmação de Pedido</h4>
</div>
<div class="modal-body">
<p>Deseja concluir o pedido ?</p>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-success" name="enviar" id="enviar-button"
onclick="imprimir();document.getElementById('form-send').submit();">Concluir
</button>
<button type="button" class="btn btn-danger" id="cancelarVia" onclick="cancelaVia();" data-dismiss="modal">Cancelar</button>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
php request.:
<?php
include 'verifica_login.php';
include 'conexao.php';
error_reporting(E_ERROR);
header('Content-Type: text/html; charset=utf-8');
# Inclusão do Pedido
$id_fornecedor = $_POST['fornecedor_id'];
$nome_fornecedor = $_POST['select_fornecedor'];
$nome_input_fornecedor = $_POST['fornecedor_new_input'];
$cnpj = str_replace(".", "", str_replace("/", "", str_replace("-", "", $_POST['cnpj'])));
$valor_total = floatval(substr(str_replace("R$", "", str_replace(",", ".", $_POST['total_pedido'])), 2));
$gerente_fiscal = trim($_SESSION['nome']);
$loja = trim($_POST['loja']);
if (isset($_POST['change_fornecedor'])) {
$sql = "INSERT INTO pedido(nome_gerente_fiscal, id_fornecedor, nome_fornecedor, cnpj, data, valor_total, loja) VALUES ('$gerente_fiscal', '$id_fornecedor', '$nome_input_fornecedor','$cnpj', NOW(), '$valor_total', '$loja')";
if (!$connect->query($sql) === true) {
die("Erro na inserção de pedido: " . $sql . "<br>" . $connect->error);
}
} else if(!isset($_POST['change_fornecedor'])) {
$sql = "INSERT INTO pedido(nome_gerente_fiscal, id_fornecedor, nome_fornecedor, cnpj, data, valor_total, loja) VALUES ('$gerente_fiscal', '$id_fornecedor', '$nome_fornecedor', '$cnpj', NOW(), '$valor_total', '$loja')";
if (!$connect->query($sql) === true) {
die("Erro na inserção de pedido: " . $sql . "<br>" . $connect->error);
}
}
# Inserção de Itens de Pedido
$id_pedido = $connect->insert_id;
$qtd_itens = sizeof($_POST['index_produto']);
for ($i=0; $i < $qtd_itens; $i++) {
# Variáveis
$item = $_POST['index_produto'][$i];
$id_produto = $_POST['id_produto'][$i];
$desc_produto = $_POST['select_produtos'][$i];
$quantidade = $_POST['quantidade-produto'][$i];
$valor_un = $_POST['preco'][$i];
$valor_produto = floatval(substr(str_replace("R$", "", str_replace(",", ".", $_POST['preco-produto'][$i])), 2));
# Insert de Dados
$query = "INSERT INTO pedido_item VALUES ('{$id_pedido}', '{$item}', '{$id_produto}', '{$desc_produto}', '{$quantidade}', '{$valor_un}', '{$valor_produto}')";
if (!$connect->query($query) === true) {
die("Erro na inserção de itens: " . $query . "<br>" . $connect->error);
}
}
header('Location: principal.php');
As requested, the print’s of the tables in the Database.
How’s your chart in the comic book? Could you post ?
– Diêgo Correia de Andrade
I will edit the question with the table prints.
– Leo
Just a hint: if in
if
you already haveisset($_POST['change_fornecedor'])
, That means when you get toelse
you guarantee!isset($_POST['change_fornecedor'])
. Therefore, yourelse-if
inif (isset($_POST['change_fornecedor']) { ... } else if (!isset($_POST['change_fornecedor'])) {
is redundant– Jefferson Quesado
Previously I was as just
else
, I put this if only for a test and forgot to take it. But thank you so much for the remark.– Leo
In your Internet to the bank the "R$" goes along with the amount?
– Diêgo Correia de Andrade
No, I remove the space and the R$ in the function
str_replace
in the variable$valor_total
before sending.– Leo
Right, see that your input generates an automatic value, take that value and try again.
– Diêgo Correia de Andrade
I withdrew and the total value continued the same way, I tested as 1,500.00 and arrived at the Bank as 1.50
– Leo