4
I need to serialize() only on the lines selected with the checkbox
<form id='form'>
<table class='table table-bordered'>
<thead>
<tr>
<th>Código</th>
<th>Produto</th>
<th>Valor</th>
<th>Quantidade</th>
<th>Seleção</th>
</tr>
</thead>
<tbody>
<tr>
<td>001</td>
<td><input type='text' name='produto[]' id='produto1' value='Produto 001'></td>
<td><input type='text' name='valor[]' id='valor1'></td>
<td><input type='number' name='quantidade[]' id='qtd1'></td>
<td><input type='checkbox' name='selecao[]' id='selecao1' value='0'></td>
</tr>
<tr>
<td>002</td>
<td><input type='text' name='produto[]' id='produto2' value='Produto 002'></td>
<td><input type='text' name='valor[]' id='valor2'></td>
<td><input type='number' name='quantidade[]' id='qtd2'></td>
<td><input type='checkbox' name='selecao[]' id='selecao2' value='1'></td>
</tr>
<tr>
<td>003</td>
<td><input type='text' name='produto[]' id='produto3' value='Produto 003'></td>
<td><input type='text' name='valor[]' id='valor3'></td>
<td><input type='number' name='quantidade[]' id='qtd3'></td>
<td><input type='checkbox' name='selecao[]' id='selecao3' value='2'></td>
</tr>
<tr>
<td>004</td>
<td><input type='text' name='produto[]' id='produto4' value='Produto 004'></td>
<td><input type='text' name='valor[]' id='valor4'></td>
<td><input type='number' name='quantidade[]' id='qtd4'></td>
<td><input type='checkbox' name='selecao[]' id='selecao4' value='3'></td>
</tr>
<tr>
<td>005</td>
<td><input type='text' name='produto[]' id='produto1' value='Produto 005'></td>
<td><input type='text' name='valor[]' id='valor5'></td>
<td><input type='number' name='quantidade[]' id='qtd5'></td>
<td><input type='checkbox' name='selecao[]' id='selecao1' value='4'></td>
</tr>
<tr>
<td>006</td>
<td><input type='text' name='produto[]' id='produto6' value='Produto 006'></td>
<td><input type='text' name='valor[]' id='valor6'></td>
<td><input type='number' name='quantidade[]' id='qtd6'></td>
<td><input type='checkbox' name='selecao[]' id='selecao6' value='5'></td>
</tr>
</tbody>
</table>
<div id='error'></div>
<input type='submit' name='salvar' id='salvar' value='Salvar'>
Javascript code
$(document).ready(function(){
$('#form').submit(function(){ //Ao submeter formulário
confirma = confirm("Confirma geração do pedido?");
if(confirma){
$.ajax({ //Função AJAX
url:"gerarPedido.php", //Arquivo php
type:"get", //Método de envio
beforeSend: function(){ $("#salvar").val('Aguarde...');},
data: $('#form').serialize(), //Dados
success: function (resposta){ //Sucesso no AJAX
$("#error").slideDown();
if (resposta != false) {
// Exibe o erro na div
$("#error").html(resposta);
$("#salvar").val('Gerar Pedido');
}else {
$("#salvar").val('Gerar Pedido');
}
}
})
return false; //Evita que a página seja atualizada
}
return false; //Evita que a página seja atualizada
})
})
As this my code is passing all the fields of the form, but I want to serialize(), only in the lines that are selected by the checkbox. This table is only an example in my project it is dynamic and can have much more line.
Okay, this is the way but it’s returning like this: product%5B%5D=Product+005&value%5B%5D=&quantity%5B%5D=&selection%5B%5D=4&product%5B%5D=Product+006&value%5B%5D=&quantity%5B%5D=&selection%5B%5D=5
– Paulo Amaral
@Pauloamaral the return is this way because of the name attribute you put in your input tag
– Gabriel Rodrigues
@Pauloamaral, when you do
$("#form").serialize()
it returns the following string:produto%5B%5D=Produto+001&valor%5B%5D=&quantidade%5B%5D=&produto%5B%5D=Produto+002&valor%5B%5D=&quantidade%5B%5D=&selecao%5B%5D=1&produto%5B%5D=Produto+003&valor%5B%5D=&quantidade%5B%5D=&produto%5B%5D=Produto+004&valor%5B%5D=&quantidade%5B%5D=&produto%5B%5D=Produto+005&valor%5B%5D=&quantidade%5B%5D=&selecao%5B%5D=4&produto%5B%5D=Produto+006&valor%5B%5D=&quantidade%5B%5D=
, then it’s okay.– Tobias Mesquita
Okay, thanks worked here
– Paulo Amaral