Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

danielswater

como posso montar uma query com checkbox marcados em tempo de execução

Recommended Posts

pessoal e o seguinte

to quebrando minha cabeça p montar uma query conforme o usuario vai clicando nos checkbox

 

imaginem assim, 3 colunas:

 

---------------- ---------------- ---------------------
COLUNA 1 COLUNA 2 COLUNA 3

---------------- ---------------- ----------------------

[X] ID 1 [X] ID 1 [X] ID 1

[X] ID 2 [X] ID 2 [X] ID 2

....... .................... .......................

 

conforme eu clico em 1 check da coluna 1, me traz um resultado, se eu clicar em um outro (mantendo o que eu cliquei anteriormente), ja acrescenta na query o "OR" e assim vai indo, Sseguindo a mesma sequencia p a coluna 2 e para 3

 

meu problema nao e montar a query, so nao sei como fazer isso via ajax :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para mandar via ajax utilize assim:

 

Onde data recebe todos os campos do seu formulário.

 

var data = $("#formulario").serialize();
$.post("select.php",data,function(resposta){
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

a sugestão do Bruce funciona muito bem, vc mandando ou não por form, vc pode ter uma tag form lá, e usar o .serialize();

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok eu vou tentar

pode me dar um exemplo de como eu poderia fazer willian?



ou melhor, como trato os dados, ois vem junto uns caracteres estranhos, tipo assim:

fcID%5B%5D=01010001

 

o que eu quero e somente o 01010001 entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc vai receber normalmente no seu php, com $_GET ou $_POST

 

essa coisa estranha ai, é o NAME do teu input.

Compartilhar este post


Link para o post
Compartilhar em outros sites

a entendi

vou tentar aqui e volto



entao, mas como tiro essa coisa estranha ? :D pq se eu tirar o name, eu n consigo recuperar o valor do checkbox



puts agora ta dando outra coisa estranha, eu removi o codigo estranho, mas da tando erro na query, no mysql_fetch_array() e o mais engraçado e que eu dei um echo na query e ela ta certinha

 

puts to ficando louco ja

Compartilhar este post


Link para o post
Compartilhar em outros sites

mostre o echo da tua query aqui, e o trecho de código dela. Assim como o erro q deu.

 

sem essas coisas não dá pra te ajudar :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

ops..falha minha, ja resolvi o lance da query

 

so preciso dar um jeito de remover esse nome que o serialize cria pra poder montar o filtro, pra n ter que ficar fazendo muito explode

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho q vc ta pegando o retorno do serialize de maneira errada.

 

isso ai é um array ne?! mostre como vc está fazendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao, o js:

$(function(){
	$("#fam").find(".fcID").click(function(){
		var form = jQuery('#form');		
		valor = form.serialize();
		$.post("biblioteca/filtra.php",{valor:valor},function(data){
		$("#tabelafiltro").html(data);
		});
		
	});

 

o php:

 

$id = $_POST['valor'];

e o html:

   <form name="form" id="form" action="" method="post">
    <input type="checkbox" class="fcID" value="<?php echo $linha['fm-cod-com'] ?>" name="fcID[]"/>
</form

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta ali no js/php o seu erro. Envie assim:

	$("#fam").find(".fcID").click(function(){
		var form = jQuery('#form');		
		valor = form.serialize();
		$.ajax({
                     url:"biblioteca/filtra.php",
                     data: valor,
                     success: function(data){
		          $("#tabelafiltro").html(data);
		     }
                });
		
	});
ai vc vai receber um array chamado $_POST['name_do_seu_input']

 

com as posições:

$_POST['name_do_seu_input'][0], $_POST['name_do_seu_input'][1] ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao cara, n ta carregando nada



a desencana, ja achei o erro....funcionou cara, valeu mesmo

por enquanto ta tudo certo, mas amanha volto com mais uvidas

 

valeu mesm, abs



desculpa reabrir, mas n ta pegando o valor do post :(



descobri

faltou colocar um type : "POST",

 

:)

 

valeu ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

como está o seu código ? e quais os names dos teus inputs ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao, desculpa reabrir o topico novamente mas n sei o que ta acontecendo

 

se vc olhar no começo do meu topico, vc vai ver que eu tenho 3 colunas de checkbox criados dinamicamente

 

so que nao sei o que ta acontecendo que eu so to conseguindo pegar de uma coluna, nesse caso a coluna 1, a do centro eu n pego os valores, acredito que nem o array,

 

tipo o js ta assim, como vc me passou:

 

$("body").find(".fcID").click(function(){
	//	var v = $(this).val();
		//alert(v);
		var form = jQuery('#form');		
		valor = form.serialize();
		$.ajax({
			type : "POST",
			url:"biblioteca/filtra.php",
			data: valor,
			
			success: function(data){
				$("#tabelafiltro").html(data);
			}
		});

no html, eu coloquei um form la com o id de form e o name de form

 

dentro desse form, tenho os checkboxes, assim:

 

<form name="form" id="form" action="" method="post">

<table>
<tr>
<td><input type="checkbox" class="fcID" value="<?php echo $linha['fm-cod-com'] ?>" name="fcID[]"/></td>
</tr>
</table>

<td><input type="checkbox" class="fcID" name="fam[]" value="<?php echo $linha['fm-codigo'] ?>" /></td>
</tr>
</table>

</form>

ou seja, coloquei a mesma classe, so mudei o nome

 

e no php esta assim:

 

$id = $_POST['fcID'];
$fam = $_POST['fam'];

echo(count($fam)) . " + " . count($id);

so que assim, ele so pega os checks com id fcID

 

n sei o que acontece

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.