Ir para conteúdo

POWERED BY:

Arquivado

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

bcs_ptx

Selecionar vários registros

Recommended Posts

Boa pessoal, queria fazer uma listagem que tudo que tiver selecionado eu abra em outra aba, tipo:

 

pagina = lista.php

 

<form>

 

<input type='check' value='1'>

<input type='check' value='2'>

<input type='check' value='3'>

 

</form>

 

se eu selecionar o valor 1 e 3 abrir uma nova aba na pagina editar.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

abrir numa nova aba ou nova janela ?

 

aba: new tab

janela: new window

 

<form action="editar.php" target="_blank" method="post">

nesse caso enviará para uma nova janela

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, mas ai abrir tudo que foi selecionado, se foi selecionado o campo 1 e 3, ele abre duas janelas, editar.php?campo1 e editar.php?campo2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você deve transformar seu input em um "vetor".

 

Para tranformá-lo em vetor, deve colocar o mesmo name em todos os inputs seguido de colchetes []. Assim:

<input type='checkbox' name="vetor[]" value='1'>

<input type='checkbox' name="vetor[]" value='2'>

<input type='checkbox' name="vetor[]" value='3'>

<input type='checkbox' name="vetor[]" value='4'>

 

No PHP, você trabalhará da seguinte forma:

$checkboxes = $_POST['vetor'];
foreach($checkboxes AS $checkbox) {
  printf("Valor selecionado: %s\n" , $checkbox);
}

Também o type, o correto é "checkbox".

 

edit---

Abrir em uma nova aba/janela, é como o @hinom demonstrou.

 

Para passar os dados, faça como eu demonstrei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz isso mais não deu certo, era isso?

 

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

<?php
$checkboxes = $_POST['vetor'];
foreach($checkboxes AS $checkbox) {
   printf("Valor selecionado: %s\n" , $checkbox);
}
?>

<input type="submit">

<table>
   	<tr>
       	<td>Valor 1</td>
           <td><input type='checkbox' name="vetor[]" value='1'></td>
       </tr>
       <tr>
       	<td>Valor 2</td>
           <td><input type='checkbox' name="vetor[]" value='2'></td>
       </tr>
       <tr>
       	<td>Valor 3</td>
           <td><input type='checkbox' name="vetor[]" value='3'></td>
       </tr>
   </table>

</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse trecho de código, deve ir no arquivo editar.php:

 

$checkboxes = $_POST['vetor'];
foreach($checkboxes AS $checkbox) {
  printf("Valor selecionado: %s\n" , $checkbox);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, agora sim, mas só mais uma coisa, ele lê os registros tudo na mesma pagina editar, oque realmente eu queria fazer, é que abra várias telas editar, uma com cada registro, entende?

 

mas valeu a ajuda pessoal

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que entendi...

 

boa parte do processo é no javascript..

 

 

é bastante simples...

 

sabe escrever algo em javascript ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O mais básico, é utilizar o window.open().

 

Inicialmente, ele vai abria uma nova janela. Agora, com os novos navegadores, ele abre em abas.

 

Entretanto, isso pode ser bloqueado pelo navegador (alguns bloqueadores de pop-up também bloqueiam). Vai ter que testar a sua necessidade. Aqui há alguns exemplos:

http://www.pageresource.com/jscript/jwinopen.htm

 

Está em inglês. Os melhores exemplos e tutoriais, você só encontrará em inglês.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu desencanei de window.open desde qeu os broewser começaram a bloquear por padrão..

 

pensaria melhor antes de usar tal recurso... dependendo do que pretende fazer, o uso do ajax pode ser mais viável..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Concordo com @hinom. Abrir várias janelas é ultrapassado. Mesmo sendo um site transitional, usuário não gosta de ficar abrindo janela ao lado de janela. Por isso doctype strict foi criado.

 

As vezes, um simples dropdown + ajax pode substituir a abertura de várias janelas/abas. E, de certa forma, torna seu sistema muito mais "elegante" e com melhor experiência para o usuário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui pessoal, agora só falta invés de abrir os registros na mesma pagina, abrir em pagina separadas ao mesmo tempo.

 


lista.php

<script language=javascript>
function selecionaTodos(){ 
for(var i = 0; i < document.form.elements.length;i++) {
	var x = document.form.elements[i];
	if(x.name == 'seleciona[]') { 
		x.checked = document.form.principal.checked;
	} 
} 
} 
</script>

<form action="editar.php" method="post" name="form">

<input type="checkbox" name="principal" onclick="selecionaTodos()">

   1<input type='checkbox' name='seleciona[]' id="1" value="1"/>
   2<input type='checkbox' name='seleciona[]' id="2" value="2"/>
   3<input type='checkbox' name='seleciona[]' id="3" value="3"/>

   <input type="submit" name="excluir"/>

</form>

editar.php

<?php

if(isset($_POST['excluir'])){	

if(!isset($_POST['seleciona'])){

echo "<script type='text/javascript'>alert('Selecione um registro!'); window.location.href='testa.php'</script>";

}

$seleciona = $_POST['seleciona'];

foreach($seleciona as $valor){

	echo $valor.'<br>';

}

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

se quer fazer dessa forma

 

basta verificar qual elemento está checado..

 

a lógica é semelhante ao script da função selecionaTodos()

 

a diferença é que se estiver checado chame o window.open enviando os parâmetros do elemento..

 

 

ainda sugiro repensar o modelo de negócios..

acho que httprequest (ajax) pode ser aplicado para o seu caso..

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.