Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera já pesquisei já tentei N coisas e nada.
seguinte tenho um shadowbox, quando ele é aberto tem um iframezinho dentro e busca minha pagina de form que envia para o banco de dados phpmysql.
até ai beleza..envia certindo e talz...eu quero que quando eu ENVIAR > e fechar esse shadowbox da um REFRESH no meu index, automaticamente.
é isso.
>
Você deve utilizar JavaScript ao invés de PHP.
Existem dois eventos em JavaScript:
O evento onunload é executado enquanto o navegador está sendo "descarregado". onbeforeunload, é executado antes de "descarregar" a página, após o término da execução, a página é "descarregada".
Existe muito erro com o real objetivo desses eventos. O pessoal acha que é somente quando fecha-se a página. Mas estão errados. É qualquer tipo de execução, de forma síncrona, que altere o estado atual página. Entre elas estão:
- Clica-se em link;
- Envia-se um formulário;
- Clica no botão voltar.
Não é recomendável utilizar onunload, pois em um navegador (não vou falar que é o IE) pode dar problema. Não é sempre, mas pode acontecer.
Já o evento onbeforeunload, não existe nenhuma restrição ou bug conhecido.
Um exemplo bem básico:
window.onbeforeunload = function (event) {
var message = 'Realmente deseja sair??';
if (typeof event == 'undefined') {
event = window.event;
}
if (event) {
event.returnValue = message;
}
return message;
}
Você também poderia utilizar Ajax, vai depender da real necessidade em atualizar a página.
onde insiro isso?
Ali em " history.back(); " essa função faz o shadowbox fechar, porém meu index nao atualiza.
meu codigo shadowbox está assim:
<?php
require( 'conecta.php' );
?>
<?php
$titulo = $_POST["titulo"];
$nick = $_POST["nick"];
$foto = $_FILES['Filedata']['name'];
if ($foto != "") {
include("upload.php");
}
$sql = "INSERT INTO mural (
titulo,
nick,
large,
thumb
) VALUES (
'" . $titulo . "',
'" . $nick . "',
'" . $nome_large . "',
'" . $nome_thumb . "'
);";
mysql_query( $sql, $conn ) or die( "Nao foi possível adicionar a base de dados! Erro: " . mysql_error() );
echo "<script type='text/javascript'> alert('enviado com sucesso'); history.back();</script>";
?>Você simplesmente insira-o no HTML:
<html>
<head>
<title>Teste</title>
<script type="text/javascript">
window.onbeforeunload = function (event) {
var message = 'Realmente deseja sair??';
if (typeof event == 'undefined') {
event = window.event;
}
if (event) {
event.returnValue = message;
}
return message;
}
</script>
</head>
<body>
</body>
</html>sim beleza, o script funcionou, porém até carrega a PAI(index) porém as informações inseridas no proprio shadowbox não aparece.
ou seja a pagina recarrega mais nao puxa as informações enviadas.
Bom, isso já é outra história então. O problema de recarregar a página foi resolvido. Certo?
Como deve funcionar com essas informações? O que deve acontecer? Aonde você as salva?
tenho um muralzim de recados no meu index...tenho um botao(escrever no mural) clicando abre o shadowbox.
lah ele escreve a msg envia, vai direto pro banco de dados..e quando fechar a janela, apenas atualiza a página index. :seta:
Ele está salvando corretamento no banco de dados?
Você poderia utilizar long polling para essa situação, é a mesma funcionalidade que o Facebook usa para o mural, e de fácil implementação.
Mais informações nesse post:
http://forum.imasters.com.br/topic/461888-verificar-banco-com-ajax-reverso/
nao, nao deu certo ainda..nem manjo de ajax :cry:
>
Ele está salvando corretamento no banco de dados?
Você poderia utilizar long polling para essa situação, é a mesma funcionalidade que o Facebook usa para o mural, e de fácil implementação.
Mais informações nesse post:
http://forum.imasters.com.br/topic/461888-verificar-banco-com-ajax-reverso/
sim ele está gravando bonitim no bando de dados.
porem para mim ver o que escrevi...eu preciso da F5 ou atualizar página saka...eu gostaria de fazer auto.
é um simples muralzim de recado brother
envio pimba no BD, dai volta pra index.....
mais assim....quando eu clico o meu index fica aberto com fundo escuro e abre janela pop up saka (shadowbox)?
tenta assim cara:
<script language="javascript">
function update(opcao){
if(opcao=='OK'){
window.close();
window.opener.location.reload();
}
}
</script>
echo "<input class=\"button\" type=\"button\" onclick=\"update('OK');\" value=\"Ok\" />";
ao clicar ele vai dar um reload na pagina que você está como se fosse o F5 tenta aê
>
tenta assim cara:
<script language="javascript">
function update(opcao){
if(opcao=='OK'){
window.close();
window.opener.location.reload();
}
}
</script>
echo "<input class=\"button\" type=\"button\" onclick=\"update('OK');\" value=\"Ok\" />";
ao clicar ele vai dar um reload na pagina que você está como se fosse o F5 tenta aê
engraçado cara, parece que nao chama o script..
ficou assim:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<script language="javascript">
function update(opcao){
if(opcao=='OK'){
window.close();
window.opener.location.reload();
}
}
</script>
<body>
<?php
require( 'conecta.php' );
?>
<?php
$titulo = $_POST["titulo"];
$nick = $_POST["nick"];
$foto = $_FILES['Filedata']['name'];
if ($foto != "") {
include("upload.php");
}
$sql = "INSERT INTO mural (
titulo,
nick,
large,
thumb
) VALUES (
'" . $titulo . "',
'" . $nick . "',
'" . $nome_large . "',
'" . $nome_thumb . "'
);";
mysql_query( $sql, $conn ) or die( "Nao foi possível adicionar a base de dados! Erro: " . mysql_error() );
echo "<input class=\"button\" type=\"button\" onclick=\"update('OK');\" value=\"Ok\" />";
?>
</body>
</html>
Você deve utilizar JavaScript ao invés de PHP.
Existem dois eventos em JavaScript:
O evento onunload é executado enquanto o navegador está sendo "descarregado". onbeforeunload, é executado antes de "descarregar" a página, após o término da execução, a página é "descarregada".
Existe muito erro com o real objetivo desses eventos. O pessoal acha que é somente quando fecha-se a página. Mas estão errados. É qualquer tipo de execução, de forma síncrona, que altere o estado atual página. Entre elas estão:
Não é recomendável utilizar onunload, pois em um navegador (não vou falar que é o IE) pode dar problema. Não é sempre, mas pode acontecer.
Já o evento onbeforeunload, não existe nenhuma restrição ou bug conhecido.
Um exemplo bem básico:
Você também poderia utilizar Ajax, vai depender da real necessidade em atualizar a página.