Ir para conteúdo

POWERED BY:

Arquivado

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

elitediego

[Resolvido] Capturar valor de vários checkbox pelo id do banco

Recommended Posts

olá pessoal!

 

estou com a seguinte dificuldade, tenho vários checboxes como no exemplo abaixo:

 

checkbox| ID | nome | endereço | telefone

_

|_| | 001 |fulano de tal| rua dos felizes| 2678-xxx

|X| | 002 |fulano de tal| rua dos felizes| 2678-xxx

|X| | 003 |fulano de tal| rua dos felizes| 2678-xxx

 

 

quero capturar o campo id de todos os checkboxes selecionados para ser feita uma select no banco conforme o chebox marcado.

 

 

Quem sober por favor me ajude!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como faço aqui,

faco uma busca no bd procurando se tem o valor;

 

if ($id==ok) $checked="checked";

else $checked="";

depois é só colocar o valor $checked no checkbox:

 

<input type="checkbox" name="" value="" $checked>

 

dessa forma ele passa o valor checked para o link quando for o caso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ñ entendi, sou iniciante e em bastante coisas tenho dificuldade pra compreender, se possivel dá pra ser mais claro?

 

derrepente eu ñ me expressei direito...

 

na verdade eu tenho um formulário de pesquisa que lista os resultados eu preciso que quando marcado um checbox eu possa pegar o valor da linha dele ñ é o id do imput mas o id da linha de forma que eu possa usar em um select

Compartilhar este post


Link para o post
Compartilhar em outros sites

trate os checks como array

observe o name, é atraves dele que você vai recuperar pelo php

<input type=checkbox name="ids[]" value="001">fulano de tal
<input type=checkbox name="ids[]" value="002">fulano de tal
<input type=checkbox name="ids[]" value="003">fulano de tal

 

e no php

$ids = $_POST['ids'];//pega o array contendo os values dos checks
print_r($ids);//imprime o array

Compartilhar este post


Link para o post
Compartilhar em outros sites

abaixo está um trecho do código onde está o checkbox.

 

if(isset($registros['id']))
			{
				echo"<td>
							<input type='checkbox' name='Marcados' value=".$registros['email1']." ><a href= 'con_cli_det.php?id=".$registros['id']."'>
								".$registros['id']."
							</a>
					</td>";
			}
			if(isset($registros['nome']))
			{
				echo"<td>
							".$registros['nome']."
					</td>";
			}
			if(isset($registros['tel']))
			{
				echo"<td align='center'>
						".$registros['tel']."
					</td>";
			}

aqui eu tento pegar o value do check box sem sucesso...

<?php
$id = $_POST['Marcados'];
print_r($Marcados);
echo"teste";
var_dump($Marcados);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentei assim e ñ funcionou, eu mando imprimir na tela apenas para teste e o erro é de variável indefinida,o que eu preciso é pegar o value dele.

 

tentei tambem passar por get e capturar assim:

	if( is_array($_GET['Marcados']) )
        	{
			foreach($_GET['Marcados'] as $tipo)
				{
					$ordenar .=$tipo.",";
				}
			$campos = substr($ordenar,0,-1);
		}

 

...e também ñ funcionou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

embaixo está o código completo do form

 

	<form method='POST' name='Form' action='editor.php'>
<a href= 'editor.php'> <input type='submit' value='enviar email' name='bt'></a>

<?


 		include "conexao_cliente.php"; //inclusão para conexão com a base de dados

	$dado5=$_GET['dado5'];
	$dado4=$_GET['dado4'];
	$dado3=$_GET['dado3'];
	$campo3=$_GET['campo3'];
	$dado2=$_GET['dado2'];
	$dado1=$_GET['dado1'];
	$campoc=$_GET['campoc'];
	$campo1=$_GET['campo1'];
	$ordem=$_GET['ordem'];
	$fields = Array( 'id' => 'Código', 'cpf_cnpj' => 'CPF/CNPJ', 'nome' => 'Nome', 'endereco' => 'Endereço',
		'ip'=> 'Ip', 'tel' => 'Tel', 'cel' => 'Cel', 'data_ativ' => 'Data de ativação',	'situacao' => 'Situação',
		'tipo' => 'tipo',	'email1' => 'E-mail 1',	'email2' => 'E-mail 2',	'obs' => 'Observação','gateway' => 'Gateway',
		'mascara' => 'Mascara',	'dns1' => 'Dns1', 'dns2' => 'Dns2',	'velocidade' => 'Velocidade','boleto' => 'Boleto',
		'data_vencimento' => 'Data do vencimento',);

	$ordenacao= "order by $ordem";
	$ordenar="";
	$ths = '';

	 if( is_array($_GET['campos']) )
        	{
			foreach($_GET['campos'] as $tipo)
				{
					$ths .= '<th>'.$fields[ $tipo ].'</th>';
					$ordenar .=$tipo.",";
				}
			$campos = substr($ordenar,0,-1);
		}
		else{
				$campos = "*";
			}
				echo " <table id='curso' border='0'>";

	$sql= "select $campos from clientes where ";
	$count=0;

	if(!empty($_GET['opc']))
	{
		if ($count==0)
		{
			$sql=$sql. "contrato LIKE '$campoc'".$ordenacao;
			$count++;
		}
		else
		{
			$sql=$sql . "and contrato LIKE '$campoc'".$ordenacao;
		}
	}

		//consulta multipla
	if(!empty($_GET['op3']))
	{
		if ($count==0)
		{
			$sql=$sql. "$campo3 like '$dado3%'".$ordenacao;
			$count++;
		}
		else{
				$sql=$sql . "and $campo3 like '$dado3%'".$ordenacao;
			}
	}
		//A consulta abaixo é feita por data de ativação
	if(!empty($_GET['campo4']))
	{
		if ($count==0)
		{
			$sql=$sql . "  data_ativ >= '$dado4' AND `data_ativ` <= '$dado5'".$ordenacao;
			$count++;
		}
		else{
				$sql=$sql . "and date_format(data_ativ, '%d/%m/%Y') like data_ativ >= '$dado4' AND `data_ativ` <= '$dado5'".$ordenacao;
			}
	}

	if(!empty($_GET['op1']))
		if(!empty($_GET['op2']))
		{
			$sql=$sql. "$campo1 like '$dado1%' and situacao= '$dado2'".$ordenacao;
		}else{
		if(!empty($_GET['op1']))
	{
		if ($count==0) {
			$sql=$sql. "$campo1 like '$dado1%'".$ordenacao;
			$count++;
		}
		else
		{
			$sql=$sql . "and $campo1 like '$dado1%'".$ordenacao;
		}
	}

		}

		echo "<tr style='display:none'>".$ths."</tr>";
		//echo "<tr id='titulo'>".$ths."</tr>";

		$resultado=mysql_query($sql);
		$i=0;
		$salario="";
		$cont=0;



		//Marcar Todos: <input type='checkbox' name='CheckTodos' onClick='marcarCheck();' /><br><br>";

		while($registros = mysql_fetch_array($resultado))
		{

			$cont= $cont+1;
			$cor = ( $i%2 == 0 ) ? ' style="background: #E8E8E8"' : '';
			echo "<tr".$cor.">";

			if(isset($registros['id']))
			{
				echo"<td>
						<input type='checkbox' name='Marcados[]'  value=".$registros['email2']." CHECKED></td>;
						<td><a href= 'con_cli_det.php?id=".$registros['id']."'>
								".$registros['id']."
							</a>
					</td>";
			}
			if(isset($registros['nome']))
			{
				echo"<td>
							".$registros['nome']."
					</td>";
			}
			if(isset($registros['tel']))
			{
				echo"<td align='center'>
						".$registros['tel']."
					</td>";
			}
			if(isset($registros['cel']))
			{
				echo"<td align='center'>
				".$registros['cel']."
					</td>";
			}
			if(isset($registros['data_ativ']))
			{
				echo"<td align='center'>
						". substr($registros['data_ativ'],8,2) . '/' . substr($registros['data_ativ'],5,2) . '/' . substr($registros['data_ativ'],0,4) ."
					</td>";
			}
			if(isset($registros['situacao']))
			{
				echo"<td align='center'>
						".$registros['situacao']."
					</td>";
			}
			if(isset($registros['tipo']))
			{
				echo"<td align='center'>
				".$registros['tipo']."
					</td>";
			}
			if(isset($registros['velocidade']))
			{
				echo"<td align='center'>
						".$registros['velocidade']."
					</td>";
			}
			if(isset($registros['cpf_cnpj']))
			{
				echo"<td align='center'>
						".$registros['cpf_cnpj']."
					</td>";
			}
			if(isset($registros['endereco']))
			{
				echo"<td>
						".$registros['endereco']."
					</td>";
			}
			if(isset($registros['ip']))
			{
				echo"<td align='center'>
						".$registros['ip']."
					</td>";
			}
			if(isset($registros['email1']))
			{
				echo"<td align='center'>
				".$registros['email1']."
					</td>";
			}
			if(isset($registros['email2']))
			{
				echo"<td align='center'>
						".$registros['email2']."
					</td>";
			}
			if(isset($registros['obs']))
			{
				echo"<td>
						".$registros['obs']."
					</td>";
			}

			if(isset($registros['gateway']))
			{
				echo"<td align='center'>
						".$registros['gateway']."
					</td>";
			}
			if(isset($registros['mascara']))
			{
				echo"<td align='center'>
						".$registros['mascara']."
					</td>";
			}
			if(isset($registros['dns1']))
			{
				echo"<td align='center'>
						".$registros['dns1']."
					</td>";
			}
			if(isset($registros['dns2']))
			{
				echo"<td align='center'>
						".$registros['dns2']."
					</td>";
			}
			if(isset($registros['boleto']))
			{
				echo"<td align='center'>
						".$registros['boleto']."
					</td>";
			}
			if(isset($registros['data_vencimento']))
			{
				echo"<td align='center'>
						".$registros['data_vencimento']."
					</td>";
			}else{

			echo"";
			}
				echo"</tr>";
				$i++;

			$salario = $salario + $registros['tipo'];

		}

		echo"</form>";
			echo "</table>";

				if($cont > 0)
				if(($_SESSION["operador"]) == 'admin')
				{
					echo "<br>";
					echo "Foram encontradas <b>".$cont." </b>clientes";
					echo " - Total de valores são R$   <b>" . number_format($salario,2,',','.') . "</b>";
				}
					if($cont==0)
					echo "<script>alert('Não há registros para essa consulta!'); history.go(-1);</SCRIPT>";
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

é, não entendi muito bem pra que esse código todo e tantas condições.

mas,

os checks estão sendo criados??

se sim verifique no html gerado se está sendo atribuído algum valor aos values dos checks e se está de acordo com o esperado.

se sim de novo,

você vai pegar esses values no arquivo editor.php atravé dó código que foi passado anteriormente.

<?php
       $Marcados = $_POST['Marcados'];//pega os checks
       var_dump($Marcados);//imprime os checks        
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

é, não entendi muito bem pra que esse código todo e tantas condições.

mas,

os checks estão sendo criados??

se sim verifique no html gerado se está sendo atribuído algum valor aos values dos checks e se está de acordo com o esperado.

se sim de novo,

você vai pegar esses values no arquivo editor.php atravé dó código que foi passado anteriormente.

<?php
       $Marcados = $_POST['Marcados'];//pega os checks
       var_dump($Marcados);//imprime os checks        
?>

o código tem varias condições porque é um formulário de consulta para pesquisa de forma filtrada, as 2 respostas pra você é sim, porém o var_dump é null.

 

eu já fiz algo parecido outras vezes mas o value era estático e ñ dinamico onde meu problema começa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depois de muito sacrifício consegui resolver...

 

 

coloquei no name colchetes e fico como se fosse um array e o value ficou dinâmico com o resultado da consulta do banco.


          <td>
      <input type='checkbox' name='Marcados[]'  value=".$teste." >
          </td>;
   <td>
             <a href= 'con_cli_det.php?id=".$registros['id']."'>
		".$registros['id']."
      </a>
   </td>

 

agradeço a todos q comentaram.

 

 

em outro arquivo php eu caputuro o value através do name dividindo ele e já colocando a virgula que é o separador, quando eu mandava imprimir pelo echo ele mostrava array

e se eu dese o var_dump ele mostrava string(xx).

$ordenar="";

	if( is_array(  $_POST['Marcados']) )
        	{
			foreach( $_POST['Marcados']  as $tipo)
				{
					$ordenar .=$tipo.",";
				}
			$campos = substr($ordenar,0,-1);
		}

		echo $campos;

Compartilhar este post


Link para o post
Compartilhar em outros sites

daria para fazer com implode()

 

 

      $campos = implode( ',', $_POST['Marcados'] );

no lugar desse teu foreach()

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.