Ir para conteúdo

POWERED BY:

Arquivado

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

reinaldorti

selecionar varios checkbox

Recommended Posts

olá, galera! estou com uma duvida muito grande e não estou conseguindo fazer..

tenho uns dados gravados no meu banco de dados. como (id, pedido, cliente, data, produto e franquia ).

quando essa franquia entra no sistema e solicita uma coleta de produto ela seleciona com o check box quais produto ela quer retirar da fabrica. preciso que quando ela selecionar exemplo de 50 check box vindo do bd ela selecione 12. grave isso em uma outra tabela.. minha duvida é. gravar vários check box de uma só (check box em loop) vez em outra tabela.. como eu faço isso. obrigado... estarei postando o código aqui para vocês entender...

 

 

 

<?php if(isset($_POST['cadastro']) && $_POST['cadastro'] == 'ok'){
$pedido = $_POST['pedido'];
$franquia = $_POST['franquia'];
$envio = $_POST['envio'];
$nometransportador = $_POST['nometransportador'];
$telefonetransportador = $_POST['telefonetransportador'];
$dataparacoletar = $_POST['dataparacoletar'];
$datasolicitada = $_POST['datasolicitada'];
$cadastra = mysql_query("INSERT INTO pedido_coleta (franquia, envio, nometransportador, telefonetransportador, dataparacoletar, datasolicitada) VALUES ('$franquia','$envio','$nometransportador','$telefonetransportador','$dataparacoletar','$datasolicitada')") or die(mysql_error());
if($cadastra >= '1'){
echo "<div class=\"ok\"><img src='img/y.png' width='30' height='30' border='0' /><spa style='margin-left:10px; padding:8px;'>Seu pedido foi solicitado com sucesso!</span></div>";
echo "<meta HTTP-EQUIV='refresh' CONTENT='3;URL=ver-fraquia-pronto.php'>";
}else{
echo "<div class=\"no\"><img src='img/n.png' width='30' height='30' border='0' /><spa style='margin-left:10px;'>Erro ao solicitar o pedido!</span></div>";
} }
?>
<form name="cadastro" action="" method="post" enctype="multipart/form-data">
<table width="890" border="0" style="font-size:12px;" align="center">
<tr bgcolor="#7BC3F2" style="color:#FFF;">
<th width="27" align="center" bgcolor="#006CB5" style="color:#FFF;"></th>
<th width="67" bgcolor="#006CB5" style="color:#FFF;">Pedido</th>
<th width="423" align="left" bgcolor="#006CB5" style="color:#FFF;">Cliente</th>
<th width="70" align="center" bgcolor="#006CB5" style="color:#FFF;">Emissão</th>
<th width="80" align="center" bgcolor="#006CB5" style="color:#FFF;">Data limite</th>
<th width="70" align="center" bgcolor="#006CB5" style="color:#FFF;">Status</th>
<th width="70" align="center" bgcolor="#006CB5" style="color:#FFF;">Visualizar</th>
</tr>
<?php
$email = $_SESSION['email'];
$sql = mysql_query("SELECT * FROM admin WHERE email = '$email' ");
while($linhaArray = mysql_fetch_array($sql)){
$nome = $linhaArray['nome'];
$email = $linhaArray['email'];
}
$sql = mysql_query("SELECT * FROM cadastro_pedidos WHERE franquia='$nome' AND status='Pronto' ORDER BY pedido DESC ") or die(mysql_error());
while($ln = mysql_fetch_array($sql)){
$id = $ln['id'];
$nome = $ln['nome'];
$pedido = $ln['pedido'];
$cliente = $ln['cliente'];
$franquia = $ln['franquia'];
$status = $ln['status'];
$emissao = $ln['emissao'];
$previsao = $ln['previsao'];
$notafiscal = $ln['notafiscal'];
$retirada = $ln['retirada'];
$produto = $ln['produto'];
?>
<tr style="cursor:default;" onMouseOver="javascript:this.style.backgroundColor='#CCC'" onMouseOut="javascript:this.style.backgroundColor=''">
<th width="27" align="center">
<input type="checkbox" name="pedido[]" value="<?php echo $pedido; ?>" id="Marcados" />
</th>
<th width="67"><strong><?php echo $pedido; ?></strong></th>
<th width="423" align="left"><?php echo $cliente; ?></th>
<th width="70" align="center"><?php echo $emissao; ?></th>
<th width="80" align="center"><?php echo $retirada; ?></th>
<th width="70" align="center"><strong><?php echo $status;?></strong></th>
<th width="70" align="center"><a href="visualisar-pedidos-franquia.php?funcao=mostra&id=<?php echo $id ?>" style="color:#000; text-decoration:none;">Visualizar</a></th>
</tr>
<?php } ?>
</table>
<br/><br/>
<table width="700" border="0" cellpadding="2" cellspacing="2" align="left">
<tr>
<th width="166" align="left" scope="col"> </th>
<th align="left" scope="col">
<input type="hidden" name="franquia" value="<?php echo $franquia; ?>" />
</th>
</tr>
<tr>
<th width="166" align="left" scope="col">Como será enviado:</th>
<th width="520" align="left" scope="col">
<select name="envio">
<option value="">Selecionar...</option>
<option value="Transportadora">Transportadora</option>
<option value="Correio Sedex">Correio Sedex</option>
<option value="Motorista Autonomo">Motorista Autonomo</option>
</select>
</th>
</tr>
<tr>
<th width="166" align="left" scope="col">Nome do transportador:</th>
<th align="left" scope="col">
<input type="text" name="nometransportador" required />
</th>
</tr>
<tr>
<th width="166" align="left" scope="col">Telefone do motorista:</th>
<th align="left" scope="col">
<input type="text" name="telefonetransportador" required /></th>
</tr>
<tr>
<th width="166" align="left" scope="col">Dada para retirar:</th>
<th align="left" scope="col"><input type="text" name="dataparacoletar" required /></th>
</tr>
<tr>
<th width="166" align="left" scope="col">
<input type="hidden" name="datasolicitada" value="<?php echo $data = date("d/m/Y"); ?>" />
<input type="hidden" name="cliente" value="<?php echo $cliente; ?>" />
<input type="hidden" name="cadastro" value="ok" />
</th>
<th align="left" scope="col">
<input type="submit" name="cadastrar" value="Solicitar Banheiras" id="bt" />
</th>
</tr>
</table>
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça um loop com FOR e dê um "implode" nos dados para separar por vírgula os valores se for o caso... a query para salvar você coloca dentro do for também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Reinaldo, produre automatizar seus sistema, vc ta fazendo quase que manual tudo ai.

 

Veja o exemplo:

 

Partindo do principio de que vc esteja usando oi método POST de envio de dados do seu formulário. Assim

 

<form ... action="recebeDados.php" method="post">

 

Ai naquela pagina que vc receberá os dados vc, que acima exemplificamos como recebeDados.php vc coloca o seguinte codigo

 

<?php

        if($_POST){
            foreach ($_POST as $k=>$v) {

echo '<br>chave = '.$k.' - valor = '.$v;
                }
            }

?>

Vc vai notar que assim o proprio php pega todos os valore do seu form, automaticamente.

 

Vejamos:

 

Eu vi em seu cod que vc tem um select assim: <select name="envio">

 

Entao o name='envio' sera uma referencia para seus dados ou seja, entre seus dados post vira algo assim

 

$_POST['envio'] = valor do form (Transportadora, correios, etc..)

Ai eu pergunto envio é o nome de sua colna no banco de dados? Caso nao seja, entao, onde vc for armazenar esse dado, ou seja o dado vindo do campo envio vc coloca o name do campo exatamente como é o da coluna de seu banco dados. Logo vc vai ver o pq disso.

 

 

Lembra que eu falei acima do loop foreach()

 

Entao agora, partindo do principio que todos os names de seus campos sao exatamento os mesmos de suas colunas no seu db, vamo automatizar as incluões no banco seu.

 

?>
<?php
$query = '';
        if($_POST){
            foreach ($_POST as $k=>$v) {
                    switch($k){
                        case 'cadastrar' :
                        case 'coloque aqui os campos do seu form que nao devem ir para o armazenamento de seu banco de dados, conforme eu coloquei o cadastrar acima' :
                            break;
                        default : $query .= "`".$k."`="."'".$v."'";
                    }
                }
            }
$sql = mysql_query("INSERT INTO cadastro_pedidos ".$query) or die(mysql_error());
            
?>

Dessa forma , vc economiza escrita de codito e seu cod fica dinamico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voltando ao fôco que me foi passado, vejamos o seguinte exemplo:

 

 

 

 

<form name="check" id="check" method="POST" action="testes.php">
<input type="checkbox" name="teste[]" id="teste1" value="A" /> TEste A
<br>
<input type="checkbox" name="teste[]" id="teste2" value="B" />Teste B
<br>
<input type="checkbox" name="teste[]" id="teste3" value="C" />Teste C
<br>
<input type="submit" name="ok" value="Mostre-me os valores !">
</form>

Vamos ao script de processamento, lembrando que é apenas um exemplo muito simples para que você tenha idéia de como funciona, se você for gravar os valores um por um semparado por id, deverá por a query dentro do for, caso contrário pode gravar todos os dados de uma vez separados por " , " (vírgula)

 

 

<?php
$arr = $_POST['teste'];

for($i=0; $i < count($arr); $i++)
{
    print 'Valores: '.$arr[$i].' <br>';
}
$arr2 =implode(',', $arr);
print $arr2; //é só fazer a query para gravar no DB....
mysql_query("INSERT INTO tabela (campo) VALUES('$arr2')");
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá, Alaerte Gabriel! legal essa script que você passo. mas tem um detalhe.

 

essa parte aqui é dinamica


<form name="check" id="check" method="POST" action="testes.php"> <input type="checkbox" name="teste[]" id="teste1" value="A" /> TEste A <br> <input type="checkbox" name="teste[]" id="teste2" value="B" />Teste B <br> <input type="checkbox" name="teste[]" id="teste3" value="C" />Teste C <br> <input type="submit" name="ok" value="Mostre-me os valores !"> </form>

 

 

ficando assim

 

 

<form name="check" id="check" method="POST" action="testes.php">
<input type="checkbox" name="teste[]" id="teste1" value="<? echo $pdido; ?>" /> <? echo $pdido; ?>
<input type="submit" name="ok" value="Mostre-me os valores !">
</form>
daria certo também? para gravar..?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Claro, não tem nada haver... o formulário/objeto deverá mesmo receber algum valor, pode ser dinâmico ou não... o importante é o nome do campo que deve ser array...

Compartilhar este post


Link para o post
Compartilhar em outros sites

entendi.. consegui fazer gravar dinamico... agora estarei fazendo isso amanha pra ver se consigo terminar isso.. valew mesmo. obrigado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

resolvido, muito obrigado em Gabriel me ajudo muito, uma coisa que não estava encontrando na net de forma alguma... fiz as adaptações para meu banco e está funcionando perfeito... obrigado mesmo... qualquer coisa eu posto a duvida aqui...mas acho que agora está tudo certo. obrigado mesmo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

oe, é o seguinte.... esse script que me passo é legal deu certo. mas preciso que quando eu seleciono o check box grave cada um em um campo diferente.. tem como? esse que você me passo está gravando tudo o check box um campo só..

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou postando o link aqui. está funcionando certinho só preciso separar para cada campo..

 

de uma olhada para ver o que estou precisando...

 

 

solicitar-produto.php

 

<form name="check" id="check" method="POST" action="funcao-solicitar-produtos.php">

 

 

<table width="700" border="0" cellpadding="4" cellspacing="4" align="left">
<tr>
<th colspan="2" align="left" scope="col"> </th>
</tr>
<tr>
<th colspan="2" align="left" scope="col">Como será enviado:</th>
</tr>
<tr>
<th colspan="2" align="left" scope="col"><select name="envio">
<option value="">Selecionar...</option>
<option value="Transportadora">Transportadora</option>
<option value="Correio Sedex">Correio Sedex</option>
<option value="Motorista Autonomo">Motorista Autonomo</option>
</select></th>
</tr>
<tr>
<th width="166" align="left" scope="col">Nome do transportador:</th>
<th width="520" align="left" scope="col"> </th>
</tr>
<tr>
<th colspan="2" align="left" scope="col"><input type="text" name="nometransportador" required title="Nome do transportador"/></th>
</tr>
<tr>
<th colspan="2" align="left" scope="col">Telefone do motorista:</th>
</tr>
<tr>
<th colspan="2" align="left" scope="col"><input type="text" name="telefonetransportador" OnKeyPress="formatar(this, '##.####.####')" maxlength="14" placeholder="00.0000.0000" /></th>
</tr>
<tr>
<th colspan="2" align="left" scope="col">Dada para retirar:</th>
</tr>
<tr>
<th colspan="2" align="left" scope="col"><input type="text" name="dataparacoletar" OnKeyPress="formatar(this, '##/##/####')" maxlength="10" placeholder="00/00/0000"/></th>
</tr>
<tr>
<th colspan="2" align="left" scope="col">
<input type="hidden" name="datasolicitada" value="<?php echo date("d/m/Y"); ?>" />
<input type="submit" name="ok" value="Solicitar produtos" id="bt">
</th>
</tr>
<tr>
<th align="left" scope="col"> </th>
<th align="left" scope="col"> </th>
</tr>
</table>
</form>

 

 

 

 

 

funcao-solicitar-produtos.php

 

 

$datasolicitada = $_POST['datasolicitada'];
$envio = $_POST['envio'];
$nometransportador = $_POST['nometransportador'];
$telefonetransportador = $_POST['telefonetransportador'];
$arr = $_POST['pedido'];
$dataparacoletar = $_POST['dataparacoletar'];
//$alteraStatusSolicita = mysql_query("UPDATE cadastro_pedidos SET feedstatus = 'sim' WHERE id_comentario = '$id_comentario'");
for($i=0; $i < count($arr); $i++)
{
}
$arr2 =implode(',', $arr);
// print $arr2; //é só fazer a query para gravar no DB....
mysql_query("INSERT INTO solicitar_produtos (pedido, franquia, envio, nometransportador, telefonetransportador, datasolicitada, dataparacoletar) VALUES('$arr2','$franquia','$envio','$nometransportador','$telefonetransportador','$datasolicitada','$dataparacoletar')");
echo "
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=solicitar-produto.php'>
<script type=\"text/javascript\">
alert(\"Dados solicitado com sucesso\");
</script>
";

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse aqui. eu não consegui fazer

 

 

mysql_query("INSERT INTO tabela (campo,campo2) VALUES('$arr2[0]','$arr2[1]')");

 

 

na verdade preciso que ele grava os check box reverentes a esses dados.. quando ele solicitar os produtos ele vai colocar quem vai retirar o nome do transportador e transportadores que vai retirar... se ele selecionar 5 produtos ele tera que colocar esses dados para cadastrar junto com essas check selecionada.

 

$datasolicitada = $_POST['datasolicitada'];
$envio = $_POST['envio'];
$nometransportador = $_POST['nometransportador'];
$telefonetransportador = $_POST['telefonetransportador'];
$arr = $_POST['produto'];
$dataparacoletar = $_POST['dataparacoletar'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

oe, surgiu uma nova dúvida nesse meu código.. exemplo. quando o franqueado solicitar vários produtos pelo check box, tem como atualizar para que ele não solicite os mesmo produtos repetidos. não deixar ele selecionar os mesmo produtos ou fazendo com que ele não apareça mais na lista...

 

obrigado desde já..

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.