• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ville

CSS e PHP

19 mensagens neste tópico

Quero fazer um site frameless, mas com o conceito parecido com as frames, ("pseudo-frames")

  Uso css e php

algo como isto : http://tutorials.alsacreations.com/frames/suite.php

Mas surgiu-me um problema. Quando pretendo que ele passe de uma pseudo-frame para a outra, enviando dados, ele não me envia através do include.

algo como isto

if (!isset($_GET['page'])) $page= 'actual'; 
switch($page)
{
case 'actual': include ('apresentacao.php');break;
case 'inserir': include ('inserir.php');break;
case 'pesquisar': include ('pesquisar.php');break;
case 'listar':include ('fichas.php');break;
case 'resultadospesquisa': include('resultados_pesquisa.php?nome=$nome');break;	//(nao funciona, embora os outros sim)
} 

Será esta a melhor forma de evitar frames, recorrendo a css? Se sim como resolvo isto?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e se abrires a página que está a dar erro directamente da barra de endereço (www.server.com/resultados_pesquisa.php?nome="qualquercoisa"), funciona bem?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

como é que estás a fazer a chamada no pesquisar.php?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

(pesquisar.php)

 <form action="index.php?page=resultadospesquisa" method="POST" />
    <label>Nome do Paciente <input type="text" name="nome"/></label><br /	
<br />
<br />
    <input type="submit" value="Procurar" />
  </form>

e no proprio index tenho o post a receber o nome da variavel.

ja experimentei por o link directo no include e n dá!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

experimenta a fazer o include assim:

include('resultados_pesquisa.php?nome='.$_POST['nome'])

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

fiz como disseste.

Warning: include(resultados_pesquisa.php?nome=dan) [function.include]: failed to open stream: No such file or directory in /opt/lampp/htdocs/clinica/index.php on line 43

Warning: include() [function.include]: Failed opening 'resultados_pesquisa.php?nome=dan' for inclusion (include_path='.:/opt/lampp/lib/php') in /opt/lampp/htdocs/clinica/index.php on line 43

linha 43 é a do include...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

experimenta com include('http://localhost/clinica/resultados_pesquisa.php?nome='.$_POST['nome'])

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

com o caminho completo, como disseste,

Warning: include() [function.include]: URL file-access is disabled in the server configuration in /opt/lampp/htdocs/clinica/index.php on line 43

Warning: include(http://localhost/clinica/resultados_pesquisa.php?nome=dan) [function.include]: failed to open stream: no suitable wrapper could be found in /opt/lampp/htdocs/clinica/index.php on line 43

Warning: include() [function.include]: Failed opening 'http://localhost/clinica/resultados_pesquisa.php?nome=dan' for inclusion (include_path='.:/opt/lampp/lib/php') in /opt/lampp/htdocs/clinica/index.php on line 43

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vocês tão doidos, esses includes nunca se fazem... Para passares a variável $nome, antes do include faz $_GET['nome'] = 'blahblah'; e no include metes como nos outros. O efeito é o mesmo. :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas o include como está passa bem o nome, visto que no erro aparece nome=dan... o problema é que não encontra o ficheiro dos resultados... ele está na mesma pasta que o index.php?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

(post )

....

case 'resultadospesquisa':include("http://localhost/clinica/resultados_pesquisa.php?nome=$nome");break;

resultado :

Warning: include() [function.include]: URL file-access is disabled in the server configuration in /opt/lampp/htdocs/clinica/index.php on line 43

Warning: include(http://localhost/clinica/resultados_pesquisa.php?nome=dan) [function.include]: failed to open stream: no suitable wrapper could be found in /opt/lampp/htdocs/clinica/index.php on line 43

Warning: include() [function.include]: Failed opening 'http://localhost/clinica/resultados_pesquisa.php?nome=dan' for inclusion (include_path='.:/opt/lampp/lib/php') in /opt/lampp/htdocs/clinica/index.php on line 43

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim, está tudo na mesma directoria. Mas secalhar existe melhor forma de fazer isto não?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas o include como está passa bem o nome, visto que no erro aparece nome=dan... o problema é que não encontra o ficheiro dos resultados... ele está na mesma pasta que o index.php?

Tipo, o que tu queres fazer é impossível. No máximo dos máximos, podes incluir o resultado do script qd executando via localhost.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu já tive uma página online de um cliente a funcionar exactamente assim como ele está a fazer e passava dados por post como lhe expliquei, exceptuando a situação de passar o url completo, que foi só para ver se passava o erro...

mas se dizes que assim é impossivel, tudo bem... explica-lhe é como é que ele consegue então fazer...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu já tive uma página online de um cliente a funcionar exactamente assim como ele está a fazer e passava dados por post como lhe expliquei, exceptuando a situação de passar o url completo, que foi só para ver se passava o erro...

mas se dizes que assim é impossivel, tudo bem... explica-lhe é como é que ele consegue então fazer...

Como eu disse:

if (!isset($_GET['page'])) $page= 'actual'; 
switch($page)
{
case 'actual': include ('apresentacao.php');break;
case 'inserir': include ('inserir.php');break;
case 'pesquisar': include ('pesquisar.php');break;
case 'listar':include ('fichas.php');break;
case 'resultadospesquisa': $_GET['nome']=$nome; include('resultados_pesquisa.php');break;
} 

E quando ele usar o $_GET['nome'] no resultados_pesquisa.php, vai ter o valor do $nome. Easy não? :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Funciona como disseste ! (embora tenha que usar o POST..)

Mas continuo na duvida... Não haverá melhor maneira de fazer um site frameless?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Surgiu-me um problema. Com a paginaçao. Aqui vai o codigo

//receber a letra e pagina
$_GET["letra"]	= $letra;
$_GET["pagina"] = $pagina;

//limite por pagina
$lpp = "6";

//verifica se a letra foi definida; senão define por defeito "A"
if(!isset($letra)) { $letra="A";}

/**imprime os links para todas as letras do alfabeto
- a funçao chr(numero) retorna o caracter que equivale ao numero ASCII**/
for ($i=65; $i<=90; $i++) 
{
$x = chr($i);
if ($x==$letra) //caso esteja na pagina da letra,coloca bold 
{
echo '<b><a href="fichas.php?letra='.$x.'">'.$x.'</a></b>';
}
else echo '<a href="fichas.php?letra='.$x.'">'.$x.'</a>';
}

//query para contar os registos
$query="SELECT `PAC_nome_paciente` , `PAC_cod_paciente`
FROM `PACIENTES`
WHERE `PAC_nome_paciente` like '$letra%'
ORDER BY `PAC_nome_paciente` ASC";
$result=mysqli_query($connection, $query);

//contar o número de linhas
$num_linhas=mysqli_num_rows($result);

//Calcula o numero de paginas, mediante o lpp(limite p/ pag)
$paginas = ceil($num_linhas / $lpp);  //Retorna o total de páginas

if(!isset($pagina)) { $pagina = 0;} //Especifica um valor para a mesma caso nao esteja selecionada
                                                
$inicio = $pagina * $lpp; //Retorna qual será a primeira linha a ser mostrada no MySQL

// a verdadeira query, com o inicio e limite definidos
$query="SELECT `PAC_nome_paciente` , `PAC_cod_paciente`
FROM `PACIENTES`
WHERE `PAC_nome_paciente` like '$letra%'
ORDER BY `PAC_nome_paciente` ASC
LIMIT $inicio,$lpp";
$result=mysqli_query($connection, $query);

//tabela c/ os dados
echo '<table border="1">';
echo "<tr><th>Paciente</th><th>Codigo";

//listar os resultados
for ($i=0;$i<$num_linhas;$i++)	{
$registo = mysqli_fetch_assoc($result);
echo "<tr><td>";
echo '<a href="index.php?page=ficha&codigo='
.$registo['PAC_cod_paciente'].'">'
.$registo['PAC_nome_paciente'].'</a></td><td>';
echo $registo['PAC_cod_paciente']. '</td></tr>';
}

echo '</table>';

//paginaçao 
if ($pagina > 0) {
$menos = $pagina - 1;
$url = "$PHP_SELF?pagina=$menos";
echo "<a href='$url'> <- </a>"; //vai para a pagina anterior.

} 

$barra = "| ";

for ($i=0; $i<$paginas; $i++) { //desenha os numeros c/ a |

$url = "$PHP_SELF?pagina=$i";
if ($i == 0 ){
$barra = "";
$i = ""; } else { $barra = "| "; }

if ($i == $pagina ){	//Caso esteja na página, coloca bold
echo "<font style=\"font-size: 9pt\" face=\"Arial\" color=\"#000000\"><b> $barra <font style=\"font-size: 9pt\" face=\"Arial\" color=\"#4779AB\">$i</b></font>"; }
else {
echo "$barra <a href='$url'><b>$i</b></a>";
}
}

if ($pagina < ($paginas - 1))  {
    $mais = $pagina + 1;
    $url = "$PHP_SELF?pagina=$mais";
    echo "<a href='$url'>-></a>"; //Vai para a próxima pagina.


    }

?>

Como ponho a paginaçao direita neste sistema de "pseudo-frames"? O $PHP_SELF ta a criar confusão n é?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora