Ir para conteúdo

POWERED BY:

Arquivado

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

My name is Jan Lucas

[Resolvido] PHP e JS -> $_GET

Recommended Posts

Bem pessoal meu problema é bem estranho.

Precisei mudar a função do botão submit do formulário para ser um link de redirecionamento com parâmetros.

Utilizando o onClick eu chamo uma função javascript assim:

 

function enviaForm(){
		valor = document.getElementById('ano').value;
		location.href = "index.php?pg=mes_ano&ano="+valor;
	}

<form class="form">
<select name="ano">

<?php
$x = 2010;
while($x <= 2015){
print "<option value=\"$x\">$x</option>";
$x++;
}									
?>

</select>
<label class="submit"><input type="submit" onClick="enviaForm()"></label>
</form>

 

ao chamar a função do JS ele passa 2 parametros um como o nome da pagina e outro com um valor do formulario pra pagina que pega o valor de pg que é "mes_ano".

Primeira tentativa:

switch ($_GET['pg'])
{
case "mes_ano":
include "mes_ano.php";
break;
}

 

Segunda tentativa:

switch ($_GET['pg'])
{
case "mes_ano":
$ano = $_GET['ano'];
include "mes_ano.php?ano=".$ano;
break;
}

 

Não funcionou nenhuma forma. A URL aparece assim: "http://localhost/helpdesk/adm/index.php?ano=2010" e deveria ficar assim: "http://localhost/helpdesk/adm/index.php?pg=mes_ano&ano=2010"

E nao entra na pagina mes_ano.php

 

Era pra entrar pois é la que vou utilizar o valor do ano.

 

Alguém pra me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não faz sentido esse onclick no input[submit]

 

e o teste do case está incorreto também.

 

include com parâmetro não existe.

 

 

 

enfim, volte no problema inicial, pois as tuas 'soluções' estão incorretas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

De inicio acesse http://www.php.net/include e entenda

como a função funciona. Os exemplos são bem claros.

 

Entender como as coisas funcionam é fundamental antes de tentar utiliza-las.

Ou você utilizaria uma cerra elétrica sem saber para que serve, como liga-la ou mesmo usa-la? ^_^

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A tentativa do include com parametros foi ideia de um amigo meu pra tentar me ajudar.

Eu tentei mas nao deu certo.

 

E William porque o onClick nao faz sentido funcionar no submit??

 

Como o case está incorreto? Se pra todas as outras paginas ele funciona perfeitamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

insira uma action='pagina.php' method='post' e passe por um botão oculto o valor do id, e pronto, não precisa de js e muito menos de switch, utilize um if e boa.

 

você me falou pra zer do modo convencional não é? Passar via get e o id passar num campo hidden. !? MAs isso não resolve meu problema.

 

Meu sistema tem a pagina index.php e nela tem 4 includes -> top.php, center.php, bottom.php e css.php certo?

pra ficar mais fácil a manutenção individual destes elementos.

 

na pagina css.php eu tenho todos os meus css declarados. TIpo varios arquivos css declarados que são pertinentes a cada parte do meu sistema assim todas as paginas estarão com css mesmo que sejam criadas depois.

 

na pagina center.php eu tenho um switch que recebe valores das paginas por get se os valores baterem ele inclui a pagina dentro de center, e esta está inclusa na index. Assim as url ficam index.php?pg=alguma_pagina entendeu?

 

e seu eu passar através do action do form ele não será validado no switch e portanto não terá regras css pra ele por que ele nao estara incluido na center.php, que está inclusa na index.php, e os css estão inclusos na index.php como eu falei. entenderam?

 

Por isso preciso mudar a funcionalidade do submit.

 

Galera se puderem me ajudar por favor nao hesitem. Tow precisando muito.

Compartilhar este post


Link para o post
Compartilhar em outros sites
<form action="index.php?pg=mes_ano" method="post">

Compartilhar este post


Link para o post
Compartilhar em outros sites

:o Juro pelo amor de todas as cabaç..... que ainda não entendi porque é certo e eficiente fazer isto:

 

<form action="index.php?pg=mes_ano" method="post">
E não isto:

 

<form action="index.php" method="post">
    <input type="hidden" name="pg" value="mes_ano" />
Se quer os valores por GET por que nao usa o metodo GET?

Que sentido faz usar metodo POST passando no action '?pg=valor' ?

Por que não posso recuperar o valor via POST ??? :huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

:o Juro pelo amor de todas as cabaç..... que ainda não entendi porque é certo e eficiente fazer isto:

 

<form action="index.php?pg=mes_ano" method="post">
E não isto:

 

<form action="index.php" method="post">
    <input type="hidden" name="pg" value="mes_ano" />
Se quer os valores por GET por que nao usa o metodo GET?

Que sentido faz usar metodo POST passando no action '?pg=valor' ?

Por que não posso recuperar o valor via POST ??? :huh:

 

 

Não é passar por POST entende, é via GET mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então o problema não está no form, está no switch.

Ao invés de utilizar um switch pq não usa uma função para declarar as páginas ? ?

 

Vou comentar o cód. e já posto para você, é melhor incluir apenas o conteudo do que incluir 4 páginas e fica atualizando a página inteira.

 

funcao

function recebePag($valor){
	return isset($_GET[$valor]) ? $_GET[$valor] : '';
} 

index.php - corpo

<!-- COMEÇO DA ESTRUTURA DO CONTEÚDO -->            
<div class="wrapconteudo">
    <?php 
		// Recebe o nome da página via GET
		$pg = recebePag('pg');
		// Verifica se existe ou não os valores das SESSIONS abaixo
		if(!isset($_SESSION['user1']) and !isset($_SESSION['pass1'])){
			// Caso não exista, envia o usuário para a pág. de LOGIN na qual cria as 2 sessions acima e outras
			include("login.php");
		} else {
			// Caso ja esteja logado, verifica a requisão que fez
			// E também se o arquivo existe, caso exista, ele completa com .php e inclue o arquivo
			// Se não existir o arquivo ele inclui a página erro.php
			$arq = is_file($pg.'.php') ? $pg.'.php' : 'erro.php';
			include_once $arq;
		}
	?> 
</div>
<!-- // FIM DO CONTEÚDO -->            

Os link's devem ser chamados assim (lembre-se, com o mesmo nome do arquivo).

<a href="?pg=home">Pagina Principal</a>
<a href="?pg=servicos">Link 2</a>
<a href="?pg=contato">Link 3</a>
...

Compartilhar este post


Link para o post
Compartilhar em outros sites

gente eu fiz isso:

 

<form class="form" method="GET" action="index.php?pg=mes_ano&ano=ano">

 

switch ($_GET['pg'])
{
case "mes_ano":
include "mes_ano.php";
break;
}

 

Na URL fica assim: "http://localhost/helpdesk/adm/index.php?ano=2011"

mas não foi pra pagina mes_ano.php;

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste o arquivo index.php completo para análise.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php ini_set('default_charset','UTF-8');?>
<html>
<head>
<title>HelpDesk</title>
<link rel="icon" type="image/png" href="/img/animated_favicon1.gif" />
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
<div id="all">

<?php include ("css.php")?>

<div id="fundo_all_top"></div>

<div id="fundo_all_center">
	<?php include "top.php"?>

	<?php include "menu.php"?>

	<?php include "center.php"?>

	<?php include "bottom.php"?>
</div>

<div id="fundo_all_bottom"></div>
</div>	
</body>
</html>

 

William ai a pagina index.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

1º Arquivo:

<form class="form" method="GET" action="index.php?pg=mes_ano">
<select name="ano">
<?php
$x = 2010;
while($x <= 2015){
print "<option value=\"$x\">$x</option>";
$x++;
}                                                                       
?>
</select>
<label class="submit"><input type="submit"></label>
</form>

 

2º Arquivo:

if ($_GET['pg'] == "mes_ano"){
$ano = $_GET['ano'];
include("mes_ano.php");
}

No mes_ano.php, você subtitui a $_GET["ano"] por $ano

Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O sistema já está funcionando na web e tals. E agora estou fazendo atualizações. Não vai ter como eu mudar esta estrutura do código. se eu mudar nem quero imaginar a dor de cabeça que vai dar. E outra meu estágio termina esta sexta-feira.

Cara eu estou indignado, porque eu nao usei Orientação a Objetos nesse sistema pra evitar essas coisas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque não faz isso amigo

 

<form class="form" method="POST" action="index.php">
<!-- <input type="hidden" name="pg" value="valor"> habilite esta linha caso seja necessário e coloque o valor desejado no parametro value -->

 

$include = (empty($_REQUEST['pg'])) ? 'mes_ano.php' : $_REQUEST['pg'];
include $include;

 

Onde está a variável que recebe o parametro ano?

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara é uma estrutura simples de ser mudada, não vai dar nenhuma dor de cabeça, dor de cabeça vai dar se continuar assim passando parametros pelo $_GET.

Hoje é terça ainda, até sexta tem tempo hábil para fazer as implementações.

 

Verifique o que eu disse no post #11 acima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim Periscuelo.

Como eu falei nao seria viavel eu mudar a estrutura do sistema. entende?

 

E como a pagina center.php ta incluida na pagina index.php, e dentro da center.php tem a pagina que será exibida na index.php, a variavel $ano fica nesta pagina. olha só.

 

aki está sendo pego na pagina mes_ano. Entendeu?

$ano = $_GET['ano'];

 

E gente se eu colocar na url "http://localhost/helpdesk/adm/index.php?pg=mes_ano&ano=2011"

ele entra na pagina normal e ainda imprime o valor do ano na pagina.

Perfeitamente.

O PROBLEMA é que a pagina mes_ano.php não eh colocada reconhecida.

O switch manda ela pro default dele.

 

mas nao entendo pq nao eh feito automaticamente da maneira que eu fiz com todas as outras.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tá bom.. poste a

<?php include "center.php"?>

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.