php: refresh solamente alla ricezione dei dai - by max4001976

  • Creatore Discussione Creatore Discussione max_400
  • Data di inizio Data di inizio

max_400

Utente Attivo
23 Gen 2009
770
0
16
caltanissetta
max400.forumfree.it
Ciao ragazzi,

si può fare in modo di evitare sto cacchio di refresh
che ogni 3 secondi aggiorna la pagina?

ecco l'esempio
http://max400scuola.altervista.org/messenger/messenger_str_replace-email.php

qui ce ne sono 3 refresh
1 nella casella dei messaggi
e due nei rimenenti box (max online - utente blu off line)
questi utlimi sono degli iframe sono pagine a parte

----------

Pensavo tramite la funzione isset collegato a $_POST :book:

tipo
if(isset($_POST['messaggio'])){
fwrite(file.txt......) /scrive su file e poi
header("refresh: 3; url=stessapagina"); //aggiorna la pagina

grazie
 
si però... non lo conosco ajax

ho dato una breve occhiata e sembra faccia al caso mio
http://it.wikipedia.org/wiki/AJAX

però ci vuole qualkuno che faccio un esempio

aprire due pagine "invio" e "ricezione"

- la pagina d'invio il form con la variabile "messaggio"
- la pagina di ricezione riceve il messaggio senza fare "aggiorna"

qualkuno pratico? qualkuno l'ha gia fatto?

intanto fornisco il form di invio e la ricezione

PHP:
<?php
if(isset($_POST['pulsante'])){
$messaggio=htmlspecialchars($_POST['messaggio']);

$var=fopen("deposito_messaggi.php","a+");
fwrite($var, "$messaggio<br>");
fclose($var);
}

?>
<form action="#" method="POST">
<font color="BLUE" size="5">messaggio:</font> 

<input name="messaggio" type="text"><br>
<input value="invia" name="pulsante" type="submit"><br>
</font></form>

<table border=1><tr><td><? include('deposito_messaggi.php'); ?></td></tr>
</table>


------------------deposito_messaggi.php----------------
<?php
if(isset($_POST['messaggio'])){

header('refresh: 3; aggiornare-pagina.php');
}
?>ciao<br>cucù<br>777<br>

subito dopo aver mandato un messaggio
la pagina in cui vengono memorizzati i messaggi
fa un reidirect alla principale aggiornandola
però questo funziona solo per l'invio

Ma se un altra persona manda un messaggio io non ho nessun refresh
anche se la pagina è la stessa...

forse qualkosa in javascript... però un solo refresh :book:
 
refresh/reload data after a mysql query.

ciao a tutti sono nuovo del forum.

se vuoi aggiornare l anteprima della pagina con le modifiche appena fatte non c'e' bisogno di ajax

semplicemente usa questo schema logico :

session start()
connessione mysql
istruzione isset
query mysql per ottenere una variabile $var
scrittura aggiornata della variabile $var.

ti posto un esempio :

prima di questo codice ho una pagina login.php con la form User: Password:
nella pagina login.php creo l ' array $_SESSION[].

commento in inglese per tutti !!

<?PHP

session_start();

if( $_SESSION['user'] == NULL){ // I create user in login.php page befor redirect

Header("Location: login.page url "); // if no session from login page redirect to login page

}else{

mysql_connect('sql.site.com', 'user', 'password') or die(mysql_error()); // connection to database
mysql_select_db('database');

}

} // end if SESSION

//isset case for a POST form

if(isset($_POST['submitnew'])){

$new = addslashes($_POST['newtext']); // put value of var from POST in a variable $new

mysql_query("UPDATE `table` SET `textsql`= '$new' WHERE id='1' "); // update new values in the database


}// end if isset


$query = mysql_query("SELECT * FROM `table` WHERE id='1' "); // obtain a value from database (in this case must be after isset)
$fetch = mysql_fetch_array($query);

$text = $fetch['textsql']; // now the value from database is in a variable called $text


?>


<body>


<form id='change text' method='post'>

<-- now we can write the new value and not the obsolete one without any cache problem -->
<-- in this case I write the $text variable in the textarea with PHP echo -->

<textarea rows="20" cols="20" name="newtext"> <?PHP echo $text; ?> </textarea>

<input type='submit' name='submitnew' value='Update'/>

</form>

</body>

funziona sia col testo che con le immagini.
grazie.
--
Marco
 

Discussioni simili