Regista um Plano De Controlo
</div> <div class="col-lg-6"> <fieldset> <label for="codigo" class="form-label">Referência</label> <input type="text" id="codigo" name="codigo" pattern="[AP][0-9]{4}[PICS][0-9]{4}[A-Za-z]*" placeholder="A0000C0000ABC..." autocomplete="on" required> <span class="error" id="error-message">O código deve seguir o formato: A/P seguido de 4 dígitos numéricos, seguido por P/I/C/S, seguido de mais 4 dígitos numéricos e uma quantidade infinita de letras.</span> </fieldset> </div> <div class="col-lg-6"> <fieldset> <label for="Designacao" class="form-label">Designação</label> <input type="text" name="Designacao" class="Designacao" placeholder="Chave Inglesa" autocomplete="on" required> </fieldset> </div> <div class="col-lg-6"> <fieldset> <label for="data" class="form-label">Data</label> <input type="date" name="data" id="data" class="data" readonly> </fieldset> </div> <div class="col-lg-6"> <fieldset> <label for="Operacao" class="form-label">Operações</label> <div class="row"> <div class="col-md-4"> <p for="Corte">Corte</p> <input type="checkbox" id="Corte" name="opcoes[]" value="Corte"> </div> <div class="col-md-4"> <p for="Quinagem">Quinagem</p> <input type="checkbox" id="Quinagem" name="opcoes[]" value="Quinagem"> </div> <div class="col-md-4"> <p for="Rosqagem">Rosqagem</p> <input type="checkbox" id="Rosqagem" name="opcoes[]" value="Rosqagem"> </div> </div> </fieldset> </div> <center> <div class="col-lg-6"> <fieldset> <center> <table id="tabela-dados"> <thead> <tr> <th>Item</th> <th>Cota/Aspecto Visual</th> <th>Tol/Ok/NOK</th> <th>Ações</th> </tr> </thead> <tbody id="corpo-tabela">
Linhas serão adicionadas aqui dinamicamente –>
Item
“>
Cota/Aspecto Visual
Tol.
OK/NOKAdicionar Linha
Criar PDF
Campo oculto para enviar os dados da tabela como JSON –>
Footer –>
Scripts –>
<script>
function gerarPDF() {
const form = document.getElementById(‘reservation-form’);
const formData = new FormData(form);
const params = new URLSearchParams(formData).toString();window.open(‘registoplano.php?’ + params, ‘_blank’);
}let dataAtual = new Date();
let ano = dataAtual.getFullYear();
let mes = String(dataAtual.getMonth() + 1).padStart(2, ‘0’);
let dia = String(dataAtual.getDate()).padStart(2, ‘0’);
let dataFormatada =${ano}-${mes}-${dia}
;document.getElementById(‘data’).value = dataFormatada;
let contadorLinhas = 0;
function handleRadioButtonChange() {
const textbox = document.getElementById(‘textbox’);
const tolRadioButton = document.querySelector(‘input[name=”option”][value=”tol”]’);
const oknokRadioButton = document.querySelector(‘input[name=”option”][value=”oknok”]’);if (tolRadioButton.checked) {
textbox.disabled = false;
textbox.placeholder = “Tolerância”;
textbox.pattern = “-?[0-9]+ – -?[0-9]+”; // Restrição para dois valores numéricos separados por espaço, podendo ser negativos
else if (oknokRadioButton.checked) {
textbox.disabled = false;
textbox.placeholder = “OK/NOK”;
textbox.pattern = “(OK|NOK)”; // Restrição para “OK” ou “NOK”
else {
textbox.disabled = true;
textbox.placeholder = “Seleciona em cima”;
textbox.pattern = “”;
}
}function adicionarLinha() {
contadorLinhas++;
const tabela = document.getElementById(‘corpo-tabela’);const novaLinha = tabela.insertRow();
const colunaItem = novaLinha.insertCell(0);
const colunaAspecto = novaLinha.insertCell(1);
const colunaTolOkNok = novaLinha.insertCell(2);
const colunaAcoes = novaLinha.insertCell(3);const itemValue = document.getElementById(‘item’).value;
const aspectoValue = document.getElementById(‘aspecto’).value;
const tolOkNokValue = document.getElementById(‘textbox’).value;colunaItem.textContent = itemValue;
colunaAspecto.textContent = aspectoValue;
colunaTolOkNok.textContent = tolOkNokValue;
colunaAcoes.innerHTML =<button onclick="removerLinha(this)">Remover</button>
;contadorLinhas++;
atualizarItemsJson();
}function removerLinha(botao) {
const linha = botao.parentNode.parentNode;
linha.remove();
atualizarItemsJson();
}function atualizarItemsJson() {
const tabela = document.getElementById(‘corpo-tabela’);
const linhas = tabela.getElementsByTagName(‘tr’);
const items = [];for (let i = 0; i `your text`
—ligarbd—–
connect_error) {
die(“Conexão falhou: ” . $conn->connect_error);
}echo “Conexão bem-sucedida”; // Esta mensagem será exibida se a conexão for bem-sucedida
Fechando a conexão
$conn->close();
?>——end——
connect_error) {
die(“Erro na conexão: ” . $conn->connect_error);
}if ($_SERVER[‘REQUEST_METHOD’] == ‘POST’) {
$codigo = $_POST[‘codigo’];
$designacao = $_POST[‘Designacao’];
$data = $_POST[‘data’];
$opcoes = isset($_POST[‘opcoes’]) ? implode(‘, ‘, $_POST[‘opcoes’]) : ”;
$items = json_decode($_POST[‘items’], true);Processamento e inserção no banco de dados
Exemplo para inserção dos itens
foreach ($items as $item) {
$item_nome = $item[‘item’];
$aspecto = $item[‘aspecto’];
$tol_ok_nok = $item[‘tol_ok_nok’];$sql = “INSERT INTO plano_controle (Referênçia,Operacao,Designacao,Data,Item,Aspecto_Visual,Tol./OK/NOK) VALUES (‘$codigo’,’$opcoes’, ‘$designacao’, ‘$data’, ‘$item_nome’, ‘$aspecto’, ‘$tol_ok_nok’)”;
if ($conn->query($sql) === TRUE) {
echo “Novo registro criado com sucesso”;
else {
echo “Erro: ” . $sql . “
” . $conn->error;
}
}$conn->close();
}
?>
Luis Gaspar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
1