[Resolvido] Ajuda! Meu campo está exibindo o valor selecionado corretamente mas gravando como 0(zero) no banco de dados.
Boa tarde pessoal,
Sou iniciante em Desenvolvimento Web e não estou conseguindo resolver um problema no meu código, se alguém puder me ajudar agradeço imensamente.
Vamos lá!
Na tela de cadastro eu tenho um campo tipo select, onde escolho o tipo de documento, e no campo de baixo eu tenho um tipo text que mostrará a quantidade de anos para descarte deste documento. Então quando o usuário selecionar um dos documentos no campo de cima automaticamente deve aparecer o valor do tempo de descarte no campo de baixo, e ai sim o usuário poderá cadastrar o documento em si.
Obs.: estou ignorando o restante dos campos de cadastro pois não são relevantes para este problema.
[/applications/core/interface/imageproxy/imageproxy.php?img=https://forum.scriptbrasil.com.br/uploads/monthly_2022_07/451700898_Capturadetelade2022-07-1208-40-07.thumb.png.b45aa11d0414765e6bdd9a89cf672b39.png&key=1ec45c2bf770bcd080aecd8146ec695057c50ff290f3c5371c0a199ca970f379" style="border-style:none;vertical-align:middle;" width="1000" data-imageproxy-source="https://forum.scriptbrasil.com.br/uploads/monthly_2022_07/451700898_Capturadetelade2022-07-1208-40-07.thumb.png.b45aa11d0414765e6bdd9a89cf672b39.png" />](https://forum.scriptbrasil.com.br/uploads/monthly_2022_07/1700202960_Capturadetelade2022-07-1208-40-07.png.50967afd2d6ff7f557ce2638812c33ac.png)
Este evento está funcionando perfeitamente, o problema é que quando clico no botão "cadastrar" o campo de "periodicidade de descarte" não está salvando no bando de dados com o valor exibido, mas sim como zero.
No arquivo ***processa_cadastro.php*** quando dou um ***var_dump*** em ***$periodo_doc*** ele imprime: ***int(0)***
Não consegui identificar onde estou errando.
Por favor, poderiam me dar uma luz.
Obrigada!
Segue os códigos para entendimento.
tipo_arquivo.sql:
-- phpMyAdmin SQL Dump
-- version 5.2.0
-- https://www.phpmyadmin.net/
--
-- Host: localhost
-- Tempo de geração: 12-Jul-2022 às 14:46
-- Versão do servidor: 10.4.24-MariaDB
-- versão do PHP: 7.4.29
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Banco de dados: sistemadescarte
--
-- --------------------------------------------------------
--
-- Estrutura da tabela tipo_arquivo
--
CREATE TABLE `tipo_arquivo` (
`id_tipo` int(11) NOT NULL,
`nome_tipo` varchar(255) NOT NULL,
`descarte` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Extraindo dados da tabela tipo_arquivo
--
INSERT INTO tipo_arquivo (id_tipo, nome_tipo, descarte) VALUES
(1, 'Ata Extraordinária', 5),
(2, 'Ata Ordinária', 5),
(3, 'carta', 8),
(4, 'Memorando', 10),
(5, 'Memorando Circular', 8),
(6, 'Ofício', 5),
(7, 'Ofício Circular', 5),
(8, 'Processo', 10);
--
-- Índices para tabelas despejadas
--
--
-- Índices para tabela tipo_arquivo
--
ALTER TABLE `tipo_arquivo`
ADD PRIMARY KEY (`id_tipo`),
ADD KEY `id_tipo` (`id_tipo`);
--
-- AUTO_INCREMENT de tabelas despejadas
--
--
-- AUTO_INCREMENT de tabela tipo_arquivo
--
ALTER TABLE `tipo_arquivo`
MODIFY `id_tipo` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=21;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
documento.sql:
-- phpMyAdmin SQL Dump
-- version 5.2.0
-- https://www.phpmyadmin.net/
--
-- Host: localhost
-- Tempo de geração: 12-Jul-2022 às 14:47
-- Versão do servidor: 10.4.24-MariaDB
-- versão do PHP: 7.4.29
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Banco de dados: sistemadescarte
--
-- --------------------------------------------------------
--
-- Estrutura da tabela documento
--
CREATE TABLE `documento` (
`ID_DOC` int(11) NOT NULL,
`NUMERO_DOC` varchar(20) NOT NULL,
`TIPO_DOC` int(11) NOT NULL,
`INTERESSADO` varchar(255) NOT NULL,
`TITULO` varchar(400) NOT NULL,
`OBS` varchar(400) DEFAULT NULL,
`PERIODICIDADE` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Extraindo dados da tabela documento
--
INSERT INTO documento (ID_DOC, NUMERO_DOC, TIPO_DOC, INTERESSADO, TITULO, OBS, PERIODICIDADE) VALUES
(2, '788741-2019/65', 1, 'admin', 'Ata extraordinária de 2018', 0),
(3, '888888-2021/21', 3, 'gerencia', 'Carta a gerencia', 0),
(4, '333653-2022/1', 8, 'teste', 'Processo', 'teste na observação', 0),
(6, '224568-2022/3', 2, 'teste', 'Ata Ordinária', 0);
--
-- Índices para tabelas despejadas
--
--
-- Índices para tabela documento
--
ALTER TABLE `documento`
ADD PRIMARY KEY (`ID_DOC`),
ADD KEY `TIPO_DOC` (`TIPO_DOC`);
--
-- AUTO_INCREMENT de tabelas despejadas
--
--
-- AUTO_INCREMENT de tabela documento
--
ALTER TABLE `documento`
MODIFY `ID_DOC` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2295;
--
-- Restrições para despejos de tabelas
--
--
-- Limitadores para a tabela documento
--
ALTER TABLE `documento`
ADD CONSTRAINT `documento_ibfk_1` FOREIGN KEY (`TIPO_DOC`) REFERENCES `tipo_arquivo` (`id_tipo`);
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
cadastro.php:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script type="text/javascript" src="js/descarte.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<title>Cadastro de Documento</title>
</head>
<form action="" method="post">
<div class="form-row">
<!-- tipo de documento -->
<div class="form-group col-md-1">
<label>Tipo de Documento</label>
<select name="tipo" id="tipo" class="form-control" onchange="funcaoDescarte()">
<option selected>Selecione...</option>
<!--------------- P H P ---------------->
<?php
while($row = $result->fetch_assoc())
{
echo "<option value=".$row['id_tipo'].">".$row['nome_tipo']."</option>";
}
?>
<!--------------- F I M P H P --------->
</select>
</div>
</div>
<div class="form-row">
<!-- tempo para descarte -->
<div class="form-group col-md-2">
<span class="form-text">Periodicidade para descarte deste documento:</span>
<input name="descarte" type="text" class="form-control" id="descarte" value="" disabled="">
<input type="text" readonly class="form-control-plaintext" value="Anos">
</div>
</div>
<!------------------- botão cadastrar e limpar ---------------------------------------------->
</br>
<div class="form-row">
<!-- Cadastrar e Limpar -->
<div class="form-group col-md-4">
<button type="submit" name="cadastrar_doc" class="btn btn-primary">Cadastrar</button>
<button type="reset" name="limpar_doc" class="btn btn-primary">Limpar campos</button>
</div>
</div>
</form
descarte.js:
function funcaoDescarte(){
var x = document.getElementById("tipo").value;
y = $.ajax({
url:"periodicidade.php",
method:"POST",
data:{ id : x },
success:function(data){
$("#descarte").val(data);
}
})
}
periodicidade.php:
<?php
include_once "conexao.php";
$k = $_POST['id'];
$k = trim($k);
$sql = "SELECT * FROM tipo_doc WHERE id_tipo ='{$k}'";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()){
echo $row['descarte'];
}
?>
processa_cadastro.php:
<?php
$tipo_doc = intval(filter_input(INPUT_POST, 'tipo', FILTER_SANITIZE_NUMBER_INT));
$periodo_doc = intval(filter_input(INPUT_POST, 'descarte', FILTER_SANITIZE_NUMBER_INT));
if(isset($_POST['cadastrar_doc']))
{
if($tipo_doc !='' || $periodo_doc !='')
{
$stmt = $conn->prepare("INSERT INTO documento (tipo_doc, periodicidade) VALUES (?, ?)");
$stmt->bind_param("ii", $tipo_doc, $periodo_doc);
$stmt->execute();
echo "<span class='alert alert-success'> Cadastrado com sucesso</span>";
$erro = mysqli_error($conn);
echo "Ocorreu o seguinte erro: ", '"', $erro, '"<br>';
}else{
echo "<span class='alert alert-danger'> Não cadastrado</span>";
$erro = mysqli_error($conn);
echo "Ocorreu o seguinte erro: ", '"', $erro, '"<br>';
}
}
$stmt->close();
$conn->close();
?>Discussão (5)
Carregando comentários...