Olá. Tenho 3 formulários em uma mesma pagina, onde cada um tem 1 input type text.
O que preciso é recuperar o nome desses inputs e o valor correspondente ao formulário submetido.
=============
form name="formulario1" id="formulario1"
input type="text" name="nome1" value="valor1"
/form
form name="formulario2" id="formulario2"
input type="text" name="nome2" value="valor2"
/form
form name="formulario3" id="formulario3"
input type="text" name="nome3" value="valor3"
/form
=============
..........
var formulario_submetido = document.getElementById("formulario1");
formulario_submetido.addEventListener('submit', function(e)
{
e.preventDefault();
//tentei
console.log(document.querySelectorAll('#'+this.id + ' input').name);
//tentei
var formula = new FormData(formulario_submetido);
console.log(formula.input['type=text'].name);
//tentei
console.log(formula.get(input['type=text']).name);
..........
no console.log(e), ele está nessa hierarquia form -> srcElement -> input -> attributes -> name
Como recupero o valor do name dele e o valor do value?
Estou desenvolvendo um sistema simples com exibição de formulário via modal. Uma vez cadastrado o serviço (tabela possui apenas dois campos, id e nome), eles são exibidos numa tabela com um ícone que permite a alteração do nome.
Eu clico no ícone e é chamado um modal que é gerado via ajax (pois são vários registros).
Nesse modal é mostrado o serviço e uma vez alterado, o botão Salvar chama uma função que atualiza a tabela servico, concluindo a tarefa. Fiz o mesmo processo pra cadastrar o serviço, com a diferença de que o modal está presente na mesma página, ou seja, não é chamado via ajax.
Eis os códigos:
<a href="#" onclick="modalUpdate(<?= trim($array['id']) ?>)">
<i class='bx bx-edit'></i>
</a> // Trecho onde eu chamo a função modalUpdate.
Função btAltServico click:
$('#btAltServico').click(function() {
var inpnome = $('#nome');
var inpid = $('#id');
if (inpnome.val() == '') {
swal("Atenção", "Por favor, preencha os campos obrigatórios", "warning");
if (inpnome.val() == '') {
inpnome.css("border","2px solid #f94545");
} else {
inpnome.css("border","");
}
alert(inpnome);
alert(inpid);
} else {
$.ajax({
url: '../inc/ajax/altServico.php',
type: 'post',
dataType: 'json', // pode ser html
data: {
nome : inpnome.val(),
id : inpid.val()
},
success: function(resposta){
if (resposta == 1) {
inpnome.val("");
inpnome.css("border","");
swal("Sucesso", "Serviço alterado", "success");
} else {
if (resposta == 0) {
swal("Erro", "Serviço não alterado. Log de erro gerado.", "error");
} else {
swal("Atenção", "Serviço já cadastrado", "warning");
}
}
}
})
}
});
E modalUpdate.php :
<?php
/*
* altServico.php
*
* Script responsável pelo update de serviços na tabela servico
*
* Função chamada pelo arquivo ajax.js
*/
//if ($_POST) {
require'../conn.php';
require'../../class/class.geral.php';
$geral = new Geral();
$nome = $_POST['nome'];
$id = $_POST['nome'];
$ativo = 1;
// Verifica se o servico já foi cadastrado
$sqlVer = "select nome from algo68_db_cliente.servico where nome = '".$nome."' and id <> ".$id."";
$queryVer = mysqli_query($conn, $sqlVer);
$resultVer = mysqli_num_rows($queryVer);
if ($resultVer > 0) {
echo json_encode(2); // servico já cadastrado
} else {
// Update do servico
$sql = "update algo68_db_cliente.servico set nome = '".$nome."', ativo = ".$ativo." where id = ".$id;
$query = mysqli_query($conn, $sql);
$result = mysqli_affected_rows($conn);
if ($result > 0) {
echo json_encode(1); // alterou o servico
} else {
$geral->logErro(date('d/m/Y|H:i:s'), @$_SERVER[REQUEST_URI], 'AlterarServico', mysqli_error($conn));
echo json_encode(0); // não alterou o servico
}
}
//}
?>
O problema é que quando clico no botão Salvar, não acontece nada - se eu colocar um alert qualquer na função click, só pra saber se está chegando, também não da nada. E está da mesma forma que o cadastro de serviço, que funciona perfeitamente.
Bom, é isso pessoal, tentei ser o mais breve e especifico possível. Qualquer ajuda é bem vinda, obrigado a todos, desde já.
Tenho um container com um título (h1) no cabeçalho do meu site, esse container ocupa metade da tela (50vw), e eu gostaria que esse título ocupasse toda a largura desse container, independente do seu tamanho ou do tamanho do monitor, de forma com que a palavra tenha exactamente o mesmo tamanho do container (vou anexar uma foto de exemplo). Já tentei todos os valores pra essa h1, como % e vw... mas nada parece fazer sentido.
Olá pessoal, tenho uma div a qual através de um select categorias eu trago dados de empresas do banco, aí preciso clicar nas listagens das empresas e pegar o ID quando clica no checkbox e gravar pelo ajax novamente na session feita no arquivo php tipo um carrinho de compras, que essa parte já tenho... só não to conseguindo pegar os ids gerados dinamicamente no retorno feito do ajax, eles aparecem com F12 ao inspecionar, mas não aceita eu clicar para pegar o ID, acho que é algo de DOM, mas não to sabendo fazer... alguém aí saberia me ajudar como pegar esses ids ao clicar, já que eles vem dinamicamente?