Olá a todos, estou criando um sistema de demandas com 3 tabs dentro da página que busca essas demandas no banco de dados, porém ao clicar em qualquer página da segunda ou terceira tab, a página atualiza,troca-se a url para a referida página clicada mas retorna para primeira tab…Acredito que eu deva programar algo para mudar o meu active a cada tab clicada.
Abaixo o meu código para análise.Qualquer ajuda será bem vinda,desde já Obrigado !
A função basename “limpa” a string de um path deixando apenas o nome do arquivo com extensão, por isso compare-o com a string fixa nome_do_arquivo.php
O if ternário: condição ? true : false
É o mesmo que usar if/else, nesse caso se a página atual estiver no PHP_SELF, ativa a tab, caso o contrário não define classe nenhuma (string vazia)…
G
Gabrielxx12
Obrigado pela ajuda, mas sem êxito…
Esqueci de falar que todo esse código está denominado como “consultar.php”, para chama-lo no navegador eu digito “localhost/mining/consultar.php” e por exemplo, quando troco para página 2 na aba 1 a url que vem para referenciar a pagina 2 é “localhost/mining/consultar.php?pagina=2” ja se eu fizer o mesmo na aba 2 tenho o retorno de “localhost/mining/consultar.php?page=2” e assim por diante…
Acredito que não está ocorrendo nada devido a minha url nunca ser “localhost/mining/form_busca.php?pagina=2” ou “localhost/mining/tratamento.php?page=2”, me corrija se eu estiver errado por favor.
segue o código atualizado dps que implementei sua ajuda.
R
rodevops
Falha sua ao explicar dessa forma então, subentende-se que cada aba chama uma página diferente… mas enfim… devo imaginar que cada página passada junto a url contém um número referente a aba é isso mesmo?
Se for, é só trocar por…
<?=$_GET['pagina']==2?'class="active"':''?>
Veja se ajuda, sucesso!
G
Gabrielxx12
Não não, digo aqui no site na hora de te mandar como resposta.Ele nao está saindo formatado como html
veja ai como está:
<?php include '../mining/header_footer/rodape.php'; ?>
R
rodevops
Alguma mensagem de erro?
G
Gabrielxx12
Agora deu certo, foi com a formatação.
R
rodevops
Assim está ficando confuso, você precisa definir um parâmetro, não pode usar $_GET[‘page’], $_GET[‘pagina’] e $_SERVER[‘PHP_SELF’] ao mesmo tempo para a mesma coisa…
E também cuidado ao usar essa comparação…
$_GET['page'] >= 1...
Você está dizendo ao php, “quando a page for maior ou igual a 1 ativa o tab” e isso obviamente está errado! Pois tab2 e tab3 são maiores que 1 e 1 é igual a 1 compreende a lógica agora?
Vamos por partes, qual o trecho das tabs que você usa para mudar? seria esses radios buttons acima do section?
G
Gabrielxx12
Sim, esses labels são minhas abas.As 3 pra ser exato
R
rodevops
E como você está fazendo para quando clicar no radio recarregar a página?
G
Gabrielxx12
A página “consultar.php” só é carregada após eu clicar em alguma pagina(1,2,3…n) dentro de alguma tab pois cada pagina clicada tem um “href”,por exemplo clicando na pagina 2 da tab1 tera um “href=localhost/mining/consultar.php?pagina=2”, entende ? se eu apenas ficar clicando nas tabs não irá atualizar a página consultar.php
G
Gabrielxx12
Mais um exemplo,para você poder melhor me entender
aqui minha url está na page=3 que é uma url que apenas a TAB2 envia via href
Independentemente de como seu código está, uma coisa precisa ficar clara, cada vez que você chamar url/consultar.php?pagina=2 ou pagina=3 ou pagina=1 etc… precisa passar a qual tab o conteudo pertence para isso você pode acrescentar no fim da url…
href=localhost/mining/consultar.php?pagina=2&tab=1 ou
href=localhost/mining/consultar.php?pagina=3&tab=2 ou
href=localhost/mining/consultar.php?pagina=100&tab=3 etc...
Isso em cada href que você encontrar no seu código que aponte para consultar.php entendido até aqui?
Feito isso, você pode usar o get assim…
<?=$_GET['tab']==1?'class="active"':''?>
E assim para o tab == 2, tab == 3 etc pegou a lógica da coisa agora? sucesso ai!
G
Gabrielxx12
Sim vou testar agr msm. Obrigado !
R
rodevops
E volto a puxar sua orelha, há pontos no código que você usa:
localhost/mining/consultar.php?pagina=2
Outro você usa:
localhost/mining/consultar.php?page=3
Preste bem atenção! se ambas chaves tem o mesmo propósito, mantenha o mesmo nome para os dois!!! Seja coerente, isso é lógica!!! sucesso!
G
Gabrielxx12
Fiz isso para separar as urls de acordo com sua determinada tab, pois só a tab1 me retorna “pagina” e apenas a tab2 me retorna "page"
eu tentei fazer deixando as duas tabs me retornando “pagina” mas quando clicava em alguma página,por exemplo página 2,a tab1 e tab2 trocavam igualmente para suas respectivas páginas 2.Entendeu ?
R
Solucao aceita
rodevops1 like
É como falei, isso é lógica…
Se você usa pagina e page para o mesmo propósito (dizer a qual tab pertence) não seria mais fácil apenas indicar a tab?
localhost/mining/consultar.php?tab=1 // digamos que essa esta na pagina 1
localhost/mining/consultar.php?tab=2 // essa outra na pagina 2
localhost/mining/consultar.php?tab=3 // essa outra na pagina 3
E assim em diante?
Bom, creio que você pegou a mecânica agora é contigo…