Espero que eu consiga explicar direito, vamos lá...
As noticias são exibidas por um include "noticias.php"; na index.php.
na minha index.php eu costumo gerenciar o conteudo dentro de uma div central da seguinte forma:
<div id="central>
<?php include "paginas.php"; ?>
</div>
paginas.php:
<?php
$permitidos = array('home.php', 'downloads.php', 'infos.php');
if (isset($_GET['pg']) AND (array_search($_GET['pg'], $permitidos) !== false)) {
$arquivo = $_GET['pg'];
} else {
$arquivo = 'home.php';
}
include ($arquivo);
?>
assim ficando a home.php exibida como padrão e os links do meu menu da dessa forma < a href="?pg=downloads.php" >
-
agora vou explicar oq eu quero exatamente..
noticias.php :
<?php include "config.php"; ?>
<?php
$query_noticias = "select * from tbl_noticias where status = 'Sim' ORDER BY id_noticia DESC limit 10";
$rs_noticias = mysql_query($query_noticias);
while($campo_noticias = mysql_fetch_array($rs_noticias)){
$id_noticia = $campo_noticias['id_noticia'];
$data_noticia = $campo_noticias['data'];
$descricao_noticia = $campo_noticias['descricao'];
$titulo_noticia = $campo_noticias['titulo'];
?>
<?php echo $data_noticia;?>
<A class="link-news" title='<?php echo $descricao_noticia; ?>' href="javascript:abrir('noticias-descricao.php?id_noticia=<?php echo $id_noticia; ?>');"> <?php echo $titulo_noticia; ?></A>
<?php } ?>
Como podem ver, ao clicar nessa noticia, ela abre uma pop-up do arquivo noticias-descricao.php com o valor id_noticia=$id_noticia..
noticias-descricao.php:
<?php include "config.php"; ?>
<?php
$id_noticia = $_GET['id_noticia'];
$query_noticias = "select * from tbl_noticias where id_noticia = '$id_noticia' AND status = 'Sim'";
$rs_noticias = mysql_query($query_noticias);
$campo_noticias = mysql_fetch_array($rs_noticias);
$id_noticia = $campo_noticias['id_noticia'];
$data_noticia = $campo_noticias['data'];
$titulo_noticia = $campo_noticias['titulo'];
$descricao_noticia = $campo_noticias['descricao'];
$texto_noticia = $campo_noticias['msg'];
$fonte_noticia = $campo_noticias['autor'];
$imagem_noticia = $campo_noticias['nome_arquivo'];
?>
<?php echo $titulo_noticia; ?>
<?php echo $descricao_noticia; ?>
<?php if ($imagem_noticia){ echo "<img src='imagens/noticias/$imagem_noticia' align='center' border='0'>"; } ?>
<?php echo $texto_noticia; ?>
<?php if($fonte_noticia != ""){ echo $fonte_noticia; }else{ echo "não informado";} ?> Data: <?php echo $data_noticia; ?>
O que eu quero, é exibir a noticias na DIV CENTRAL, que mostrei no começo, sem abrir uma pop-up, entende? Com a minha pouca experiencia eu nao estou conseguindo achar uma solução pra isso.
Pra um entendimento completo, mostrarei o cadastro da noticia.
Cadastrar.php (colocarei apenas os inputs pra nao ficar muito grande)
<form action="script_noticias.php?acao=cadastrar" Method="post" enctype="multipart/form-data">
<input name="titulo" type="text" id="titulo" size="50" maxlength="75">
<input name="descricao" type="text" id="descricao" size="50" maxlength="100">
<input type="file" name="nome_arquivo" id="nome_arquivo" size="50">
<textarea name="msg" id="msg" cols="90" rows="18" border='1'></textarea>
<select name='status' id='ativo' >
<option value="Sim" selected>Sim</option>
<option value="Não">Não</option>
</select>
<input name="autor" type="text" id="subtitulo" size="30" maxlength="50">
<?php if (!isset($id_noticia))
$id_noticia = ""; ?>
<input name="id_noticia" type="hidden" value="<?php echo $id_noticia; ?>">
<input type=submit value="Cadastrar Notícia" border=0 name='submit' class="cadastra">
</form>
E agora a ação do formulario:
script_noticias.php?acao=cadastrar
<?php
$acao = $_GET['acao'];
switch ($acao) {
case "cadastrar":
function trocar_acentos ($nome_arquivo)
{
$nome_arquivo = str_replace(' ','_',$nome_arquivo);
$nome_arquivo = str_replace('á','a',$nome_arquivo);
$nome_arquivo = str_replace('Á','a',$nome_arquivo);
$nome_arquivo = str_replace('é','e',$nome_arquivo);
$nome_arquivo = str_replace('É','e',$nome_arquivo);
$nome_arquivo = str_replace('í','i',$nome_arquivo);
$nome_arquivo = str_replace('Í','i',$nome_arquivo);
$nome_arquivo = str_replace('ó','o',$nome_arquivo);
$nome_arquivo = str_replace('Ó','o',$nome_arquivo);
$nome_arquivo = str_replace('ú','u',$nome_arquivo);
$nome_arquivo = str_replace('Ú','u',$nome_arquivo);
$nome_arquivo = strtolower($nome_arquivo);
return $nome_arquivo;
}
$nome_arquivo = trocar_acentos ($_FILES['nome_arquivo']['name']);
$nome_arquivo_extensao = substr($nome_arquivo,strpos($nome_arquivo,'.')+1,strlen($nome_arquivo)-strpos($nome_arquivo,'.'));
$nome_arquivo_tamanho = $_FILES['nome_arquivo']['size'];
$nome_arquivo_descricao = $_POST['nome_arquivo_descricao'];
$nome_arquivo_data = date_default_timezone_set('America/Sao_Paulo');
$uploaddir = "../imagens/noticias/";
$data = time();
if ($nome_arquivo != ""){
if (file_exists($uploaddir.$nome_arquivo))
{
$nome_arquivo = mktime()."_".$nome_arquivo;
}
}
move_uploaded_file($_FILES['nome_arquivo']['tmp_name'], $uploaddir . $nome_arquivo);
$titulo = $_POST['titulo'];
$descricao = $_POST['descricao'];
//$destaque = $_POST['destaque'];
$autor = $_POST['autor'];
$status = $_POST['status'];
$msg = $_POST['msg'];
$msg = preg_replace("/\r\n|\n|\r/", '<br>', $msg);
$data_publicacao = date("d/m/Y");
if (empty($titulo)) {
echo '<script>alert("Preencha os campos corretamente.");</script>';
echo '<script>history.back(-2)</script>';
}
else {
$query = "insert into tbl_noticias(titulo, descricao, autor, msg, nome_arquivo, data, status) values ('$titulo', '$descricao', '$autor', '$msg', '$nome_arquivo', '$data_publicacao', '$status')";
$rs= mysql_query($query);
?>
<script LANGUAGE="JavaScript" TYPE="text/javascript"> alert ("\n Notícia cadastrada com sucesso!")</SCRIPT>
<script language="JavaScript">window.location.href="principal.php";</SCRIPT>
<?php
break;
}
} //fecha acao
Bom é isso, so pra resumir:
Tenho a div "central" na index.php e quero clicar no link da noticia e fazer com que ela seja exibida na mesma pagina, sem ter q abrir pop-up, o mesmo caso do meu menu que utilizo o arquivo paginas.php...
Quem puder me ajudar serei eternamente grato! muito obrigado!
Edição feita por: math01, 18/11/2011, 05:25.