Jump to content


Photo

Preciso De Ajuda Em Um Site Php/cakephp/mysql ! [+fotos]


  • Faça o login para participar
2 replies to this topic

#1 soratto

soratto

    Novato no fórum

  • Usuários
  • 2 posts
  • Sexo:Não informado

Posted 04/07/2009, 14:43

Olá!

Primeiro analize o print:

Posted Image

Bom, esse site é de um cadastro de escolas/alunos de uma prefeitura local aqui do meu estado. O aluno se cadastra, recebe um email e clica no site que é enviado no email e ATIVA a conta dele automatico. OK!

Quero fazer 2 coisas nesse site mais não sei fazer, quero apenas uma ideia!

IDEIA FOTO 1: Na foto numero 1, ele é uma paginação. Você coloca 50, aparece os 50 primeiros cadastros, muda para 100, mostra em 100 primeiros. OK! Ele já faz isso, mais por exemplo, ele é padrão 50, se eu mudo para 100 e dou refresh na pagina, volta para 50! Se eu aperto no botão ATIVAR em algum aluno, ele da o refresh na pagina, ativa o usuario mais volta para 50. Então tenho que ficar toda a hora trocando. Como eu faço para, se eu colocar 100, ficar FIXO ali até eu dar um logout?

IDEIA FOTO 2: Bom, para cada aluno tem um checkbox ao lado FOTO 2/2. Você seleciona quantos quiser e no lugar aonde é FOTO 1/2 você aperta e ativa os selecionados ou exclui todos juntos. Como eu faço isso?
Cada um aluno tem o seu id, tudo certinho já! Mas não sei fazer ele ativar ou excluir todos que eu selecionar!

Galera, MUITO OBRIGADO a quem em ajudar!

#2 CMAC

CMAC

    Normal

  • Usuários
  • 93 posts
  • Sexo:Masculino

Posted 04/07/2009, 17:03

Para a primeira pergunta, existe diversas possibilidades de se resolver. Se você usa query strings, pode adicionar uma variável na url quando o aluno muda a ordem. Por exemplo, quando um aluno troca a ordem você adiciona cadastros=100 e assim, buscar sempre na página se existe esta variável, se não existir usa-se 50:

<?php

$total_cadastro = (isset($_GET['cadastros']) AND $_GET['cadastros'] > 0) ? $_GET['cadastros'] : 50;

Outra opção é usar cookies ou session para armazenar os dados. Use de preferência o que o seu sistema de login usa, assim quando um usuário fizer logout a variável será apagada.

Na segunda parte, basta declarar os checkboxes como um array, por exemplo:

<input type="checkbox" name="alunos[]" value="1"/>
<input type="checkbox" name="alunos[]" value="2"/>
<input type="checkbox" name="alunos[]" value="3"/>

Em que no parâmetro value você especifica o ID do aluno. Assim, no php basta fazer um ciclo no array:

<?php

foreach($_GET['alunos'] as $key => $val)
{
	//Faz a ação com o aluno de id = $val
		// Apagar, editar, etc
}

Espero ter ajudado.

Edição feita por: CMAC, 04/07/2009, 17:04.


#3 Greg

Greg

    Ativo

  • Usuários
  • 302 posts
  • Sexo:Não informado
  • Localidade:Florianópolis

Posted 06/07/2009, 15:00

Respondendo a 2° questão é fácil, você tem dois botões, certo? Um de exclusão e outro de Ativação, e apenas um form onde o action dependerá do botão clicado, ok? Pois bem, faça o seguinte:

insira no botão excluir uma função javascript, assim:

[codebox]<input type="button" onclick="enviaForm('excluir')">[/codebox]

e no botão ativar assim:

[codebox]<input type="button" onclick="enviaForm('ativar')">[/codebox]

Observe que tanto um botão o outro chama uma função, porém com parâmetros diferentes, 'ativar' para o botão ativar e 'excluir' para o botão excluir.

Seguindo:

Ao clicar em algum botão a função será chamada, o que acontecerá é que o action do form mudará de acordo com o botão clicado. Segue abaixo a função:

[codebox]function enviaForm(id){
if(id == 'ativar'){
document.getElementById('aqui_voce_coloca_o_id_do_form').action = 'aqui_voce_cloca_a_url'; //por exemplo ativar.php
}else{
document.getElementById('aqui_voce_coloca_o_id_do_form').action = 'aqui_voce_cloca_a_url'; //por exemplo excluir.php
}

document.getElementById('aqui_voce_coloca_o_id_do_form').submit()//por fim dá o submit para o action definido na função
}[/codebox]

Espero ter ajudado, qquer dúvida posta aqui.

Abraço.




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq