Ir para conteúdo

POWERED BY:

Arquivado

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

by_stoco

Get Checkbox

Recommended Posts

Salve a todos!

Estou postando pois já procurei em vários tópicos do fórum e não encontrei nada que pudesse me ajudar.

 

Seguinte:

 

Tenho uma CHECKBOX que eu posso selecionar mais de uma opção.

Estou enviando meu form via Ajax e na página que eu recebo as variáveis não consigo receber a Checkbox como um Array.

Mesmo que eu não selecione nenhuma opção o tamanho do meu array ($_GET['checkbox']) é sempre 1 (um).

 

Segue as funções que eu estou utilizando:

 

<script>function Consultar(){	num = document.getElementById('txtNum').value;	status = document.getElementById('rdgStatus').value;	dt1 = document.getElementById('txtData1').value;	dt2 = document.getElementById('txtData2').value;	posto = document.getElementById('sltPostos').value;				//-------------- Minha checkbox -----------------------				falha = document.getElementById('sltCodFalha').values;				//---------------------------------------------------------	digitador =  document.getElementById('sltDigitador').value;	servico = document.getElementById('sltServico').value;	turno = document.getElementById('sltTurnos').value;	ajaxGet("res_consulta.php?num="+num+"&status="+status+"&data1="+dt1+"&data2="+dt2+"&posto="+posto+"&falha="+falha+"&digitador="+digitador+"&servico="+servico+"&turno="+turno,document.getElementById('divResultados'),true);}</script>

Acima é a função que eu chamo o resultado da consulta.

Agora a função em PHP que gera o resultado.

 

function Consulta($campos){		@$os = $campos['num'];		@$status = $campos['status'];		@$data1 = $campos['data1'];		@$data2 = $campos['data2'];		@$posto = $campos['posto'];		@$falha = $campos['falha'];		@$digitador = $campos['digitador'];		@$servico = $campos['servico'];		@$turno = $campos['turno'];		$SQL = "SELECT *,OSF.descricao AS desc_fecha, OS.descricao AS desc_aberta FROM tbl_os OS,tbl_os_fechamento OSF, tbl_falhas_os F, tbl_postos P				WHERE P.id_posto = OS.id_posto AND F.id_falha = OS.id_falha AND OS.id_os <> '' AND OS.id_os = OSF.id_os ";		if(@$os != '') $SQL .= "AND OS.numero LIKE '%$os%' ";		if(@$status == 'abertas') $SQL .= "AND OSF.status = 'aberta' ";		if(@$status == 'fechadas') $SQL .= "AND OSF.status = 'fechada' ";		if(@$data1 != '' && $data2 == ''){ 			$dt = explode('-',$campos['data1']);			$data1 = $dt[2].'-'.$dt[1].'-'.$dt[0];			$SQL .= "AND OS.data_falha = '$data1' ";		}		if(@$data2 != '' && $data1 == ''){			$dt = explode('-',$campos['data2']);			$data2 = $dt[2].'-'.$dt[1].'-'.$dt[0];			$SQL .= "AND OS.data_falha = '$data2' ";		}		if(@$data1 != '' && $data2 != ''){			$dt = explode('-',$campos['data1']);			$data1 = $dt[2].'-'.$dt[1].'-'.$dt[0];			$dt = explode('-',$campos['data2']);			$data2 = $dt[2].'-'.$dt[1].'-'.$dt[0];			$SQL .= "AND (OS.data_falha >= '$data1' AND OS.data_falha <= '$data2') ";		}		if(@$posto != 0) $SQL .= "AND OS.id_posto = $posto ";								//----------- Array via GET ---------------------------------		print sizeof($campos['falha']);		if(sizeof($falha) > 0){			for($i=0;$i<sizeof($falha);$i++){				if ($falha[$i] != 0) $SQL .= "AND OS.id_falha = ".$falha[$i]." ";			}		}								//--------------------------------------------------------------		if(@$digitador != 0) $SQL .= "AND OS.digitador = $digitador ";		if($servico != '0'){			switch($servico){				case "Manut": $SQL .= "AND (servico LIKE '%automa%' OR servico LIKE '%auto%' OR servico LIKE '%ele%') "; break;				case "Logística": $SQL .= "AND servico LIKE '%$servico%' "; break;				case "Qualidade": $SQL .= "AND servico LIKE '%$servico%' "; break;			}		}		if($turno != '0'){		print $turno;			switch($turno){				case 1: "AND (OS.hora_falha >= '06:00:00' AND OS.hora_falha < '14:00:00') "; break;				case 2: "AND (OS.hora_falha >= '14:00:00' AND OS.hora_falha < '22:00:00') "; break;				case 3: "AND (OS.hora_falha >= '22:40:00' AND OS.hora_falha < '06:00:00') "; break;			}		}		$SQL .= "ORDER BY data_falha ";		$conecta = $this->ConCOMAN();		$res = odbc_exec($conecta,$SQL);		return $res;	}

Espero que o Post não tenha fica grande e que esteja postado no módulo correto para minha dúvida.

Se estiver postado em local errado queiram me desculpar.

 

Desde já GRATO pela ajuda de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falae, eu tenho uma parte do meu site que o úsuario pode escolher vários checkbox eu faço da seguinte maneira.

 

 

Página com os checkbox:

<form action="verifica_checkbox.php" method="post" name='formulario' id="formulario">   <input type="checkbox" name="checkbox[]" value="10" />   <input type="checkbox" name="checkbox[]" value="100" />   <input type="checkbox" name="checkbox[]" value="1000" />   <input name="submit" type="submit" value="Enviar dados" /></form>

Quando os dados são enviados para página verifica_checkbox.php eu trato assim:

//Verifica se usuário escolheu algum valorif(isset($_POST["checkbox"])) {	echo "Os valores escolhidos foram:<br />";		// Faz loop pelo array dos valores escolhidos	foreach($_POST["checkbox"] as $valores_escolhidos)	{		echo "- " . $valores_escolhidos. "<br />";	}} else {	echo "Você não escolheu os valores!<br />";}

Veja se isso ajuda, t+!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

by_stoco,

 

Eu vi que você está montando a url na mão, tente usar essa função que eu fiz, ela lhe devolve os parâmetros prontos para montar a url, é só passar o formulário para ela:

 

isNull = function(x){	if((x == 'undefined') || (x == null)){return true;}	else{return false;}};montaParametros = function(x){ 	var queryString = new Array();	var form = x;	if(!isNull(form))	{		for (var i = 0; i < form.elements.length; i++)		{ 			if(form.elements[i].type == "text"	   || form.elements[i].type == "password" || 			   form.elements[i].type == "textarea" || form.elements[i].type == "hidden")			{			 	if(form.elements[i].value.length > 0)					queryString[queryString.length] = form.elements[i].name + "=" + form.elements[i].value;			} 			else if (form.elements[i].type == "checkbox" || form.elements[i].type == "radio")			{				if(form.elements[i].checked == true)					queryString[queryString.length] = form.elements[i].name + "=" + form.elements[i].value; 			}			else if(form.elements[i].type == "select-one")			{				queryString[queryString.length] = form.elements[i].name + "=" + form.elements[i].options[form.elements[i].selectedIndex].value;			}			else if(form.elements[i].type == "select-multiple")			{				selected = new Array();					for (var j = 0; j < form.elements[i].options.length; j++)						if (form.elements[i].options[j].selected)							selected.push(form.elements[i].options[j].value);					  				if(selected.length > 0)					queryString[queryString.length] = form.elements[i].name + "=" + selected;				} 		}		return queryString.join("&");	}	else	{	 	alert("Formulário desconhecido!");		return;	}};ajaxGet("res_consulta.php?"+montaParametros(document.getElementById("nome_do_formulario")),document.getElementById('divResultados'),true);

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.