Ir para conteúdo

POWERED BY:

Arquivado

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

Marco Polo Viana

Tratar selecionados e não selecionados

Recommended Posts

Galera,

Em uma tabela com uma coluna com checkbox e outra coluna com select, tendo de marcar alguns registros com checkbox e selecionar sua opcao no select. Ao dar o post preciso inserir os selecionados numa tabela e os não selecionados em outra. Como faço isso?

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que você só irá conseguir exibir os selecionados, caso contrário eles não serão inseridos no POST, a solução pode ser você predefinir todos os checkbox e depois remover do array aqueles que foram selecionados e inserir em uma tabela, e com aqueles que não foram selecionados inserir em outra.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Monte arrays, por exemplo:

<input type="checkbox" name="excluir[1]" value="1" />
<select name="motivo[1]"><option value="aaa">xpto</option></select>


<input type="checkbox" name="excluir[2]" value="2" />
<select name="motivo[2]"><option value="aaa">xpto</option></select>


<input type="checkbox" name="excluir[3]" value="3" />
<select name="motivo[3]"><option value="aaa">xpto</option></select>

Na hora de resgatar os checkboxes basta usar um foreach, o índide do checkbox vai te dar o índice do select que você precisa resgatar também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas como pego o ckeck e o select option da mesma linha?

Conforme eu citei:

Na hora de resgatar os checkboxes basta usar um foreach, o índide do checkbox vai te dar o índice do select que você precisa resgatar também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

To fazendo assim:

if(isset($_POST['cancela']))
	{
		
		print 'Campos marcados: <br />';
		for($i=0; $i <= count($_POST['cancela']); $i++)
		{
			print $_POST['cancela'][$i].' - '.$_POST['motivo'][$i].'<br />';
		}
	}

Mas so ta pegando o id do check, nao ta peganod o <option> selecionado da mesma linha marcada

Compartilhar este post


Link para o post
Compartilhar em outros sites

To até agora procurando onde eu escrevi pra usar o for...

 

<form action="teste.php" method="post">
<input type="checkbox" name="excluir[1]" value="teste-1" /><br />
<select name="motivo[1]">
<option value="aaa">Motivo aaa</option>
<option value="bbb">Motivo bbb</option>
<option value="ccc">Motivo cc</option>
</select><br />
<hr />


<input type="checkbox" name="excluir[2]" value="teste-2" /><br />
<select name="motivo[2]">
<option value="aaa">Motivo aaa</option>
<option value="bbb">Motivo bbb</option>
<option value="ccc">Motivo ccc</option>
</select><br />
<hr />


<input type="checkbox" name="excluir[3]" value="teste-3" /><br />
<select name="motivo[3]">
<option value="aaa">Motivo aaa</option>
<option value="bbb">Motivo bbb</option>
<option value="ccc">Motivo ccc</option>
</select><br />
<hr />
<input type="submit" name="enviar" />
</form>


<?php
if(isset($_POST['excluir'])){
    foreach($_POST['excluir'] as $ind=>$val){
        echo 'Checkbox: '.$val.'--- Motivo:'.$_POST['motivo'][$ind].'<br />';
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok O.o..

a tabela estou montando num while de resultsets.. no caso :

 <td><select size="1" id="motivo" name="motivo[]">
       <option value="" selected="selected">----</option>
       <option value="Motivo1">Motivo1</option>
       <option value="Motivo2">Motivo2</option>
       <option value="Motivo3">Motivo3</option>                                 
       <option value="Motivo4">Motivo4</option>
      </select>
  </td>

o nome do select seria motivo[] ou motivo[$mesmoiddocheck] ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A página fica em branco. segue abaixo a tabela e a pagina q deveria receber os marcados e valores..

<form method="post" action="recolProc.php">
                            <button class="btn btn-outline btn-primary" type="button" onClick="window.open('recolProc.php?acao=ins&titulo=Inclusão de registro', '_parent')">Processar</button>
                            <div class="form-group input-group">                                        
                                <table>
                                    <thead>
                                        <tr>
                                            <th>Nome</th>
                                            <th>Matrícula</th>
                                            <th>Excluir</th>
                                            <th>Motivo</th>
                                            <th>Data</th>
                                        </tr>
                                    </thead>
                                    <tbody>
                                    <?php
					while ($reg = mysql_fetch_array($rs)) {
					$idassoc 		= $reg['c_associado_i_id'];
					$nome	 		= $reg['c_associado_s_nome'];
					$matricula		= $reg['c_associado_s_matricula'];
				    ?>
                                        <tr>
                                            <td><?PHP print $nome; ?></td>
                                            <td><?PHP print $matricula; ?></td>
                                            <td align="center"><input type="checkbox" name="cancela[]" value="<?PHP print $idassoc; ?>"></td>
                                            <td><select size="1" id="motivo" name="motivo[]">
                                                    <option value="" selected="selected">
                                                        ----
                                                    </option>
                                                    <option value="Rescisao">
                                                        Rescisão
                                                    </option>                                 
                                                    <option value="AfastMedic">
                                                        Afast. Médico
                                                    </option>                                 
                                                    <option value="AfastCCT">
                                                        Afast. CCT
                                                    </option>                                 
                                                </select>
                                             </td>
                                             <td><input class="form-control" type="text" name="dtocorr[]"></td>
                                            </tr>
                                        <?php } ?>
                                      </tbody>
                                </table>
                                </form>

e a pagina q recebe:

<?php
if(isset($_POST['cancela'])){
    foreach($_POST['cancela'] as $ind=>$val){
        echo 'Excluidos: '.$val.'--- Motivo:'.$_POST['motivo'][$ind].'--- Data:'.$_POST['dtocorr'][$ind].'<br />';
    }
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema da pagina em branco, localizei, era o <form> dentro de divs fora do table. Porem agora ele pega alguns checks e outros nao:

<?php
//var_dump($_POST);
if(isset($_POST['cancela'])){
    foreach($_POST['cancela'] as $ind=>$val){
        echo 'Excluidos: '.$val.'--- Motivo:'.$_POST['motivo'][$ind].'--- Data:'.$_POST['dtocorr'][$ind].'<br />';
    }
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aí galera, consegui resolver e pegar os valores, tem de identificar no name name=[$id] de cada campo a linha. O que acontece agora eh q a data doi primeiro regiustro vem diferente, as demais iguais:

if(isset($_POST['cancela'])){
    foreach($_POST['cancela'] as $ind=>$val){
		$dt_ocorr   = explode('/',$_POST['dtocorr'][$ind]);
		$dtocorr  = $dt_ocorr[2]."-".$dt_ocorr[1]."-".$dt_ocorr[0];

		$sql = "UPDATE m_mensassocs SET
		        m_mensassocs_s_excluido = 'S',
			m_mensassocs_s_motivo = '".$_POST['motivo'][$ind]."',
			m_mensassocs_d_ocorr = '".$dtocorr."'
			WHERE c_associado_i_id = '".$val."';";
		mysql_query($sql,$conexao);
		
    }
}

A data ta vindo assim:

015-02-01
2015-01-10
2015-01-25

 

vejam q a primeira data vem estranhgo

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.