IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème reload page textarea


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Problème reload page textarea
    Bonjour,

    sur mon forum (phpBB2) j'ai installé une petite messagerie instantanée qui fonctionne "très bien" mais voilà il y quand même un petit problème qui m'empêche de dormir ...

    Voilà : toto et titi sont connecté sur le forum...

    toto envoie un message à titi un pop-up s'ouvre chez titi qui peut lire le message ...

    titi commence à répondre à toto mais toto lui envois un second message ...
    ... et là le contenue du textarea de titi s'efface perdant tout ce qu'il saisissait ...

    comment je peux raffraichire la page de titi sans perdre le contenue de son textarea

    je peux répondre à toutes vos questions ...

    Merci d'avance

  2. #2
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Citation Envoyé par Laertes Voir le message
    comment je peux raffraichire la page de titi sans perdre le contenue de son textarea
    il faut utiliser le JavaScript pour dire de ne refresh qu'une partie de la page mais c'est plus facile à dire qu'à faire

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    merci, c'est un peux ce que je craignais, il me faut donc "découper" ma page en frame ...

    1 frame pour les messages
    1 frame pour le textarea

    et faire un refresh que du frame messages ?

  4. #4
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    houla non malheureux !!

    LES FRAMES CAY LE MAL BOUUUH SATAN BOUUUUUH


    en JS il existe la fonction getElementById()

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    getElementById() soit mais comment le placer j'explique :

    sur le forum j'ai un php qui est en refresh toutes les 45 secondes et qui chercher s'il y a des message a envoyés

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <?php
     
    define('IN_PHPBB', true);
    $phpbb_root_path = './';
     
    require_once($phpbb_root_path . 'extension.inc');
    require_once($phpbb_root_path . 'common.'.$phpEx);
     
    //
    // Start session management
    //
    $userdata = session_pagestart($user_ip, PAGE_INDEX);
    init_userprefs($userdata);
    //
    // End session management
    //
     
    $template->set_filenames(array(
    	'body' => 'instant_msg.tpl')
    );
     
    $expiry_time = time() - $board_config['session_length'];
     
    $sql = 'SELECT * FROM ' . INSTANTMSG_TABLE . '
    	WHERE id_dest= ' . $userdata['user_id'] . '
    		AND msg_read = 0 GROUP BY id_sender' ;
     
    if(!$result = $db->sql_query($sql))
    {
    	message_die(GENERAL_ERROR, 'Could not query immediate messages table');
    }
     
    // message a envoyés ????????????????????
    while($row = $db->sql_fetchrow($result))
    {
    	$sender = $row['id_sender'];
    	$dest = $userdata['user_id'];
    	$window_name = ($sender < $dest) ? 'w_' . $sender . '_' . $dest : 'w_' . $dest . '_' . $sender;
     
    	$template -> assign_block_vars('msg',array(
    		'U_INSTANTMSG_POPUP' => append_sid('instant_msg_view.' . $phpEx . '?dest=' . $sender),
    		'WINDOW_NAME' => $window_name,
    	) );
    }
     
    $template->assign_vars(array(
    	'REFRESH' => $board_config['instant_msg_refresh'],
    	'U_INSTANTMSG' => append_sid('instant_msg.'.$phpEx)
    ));
     
    $template->pparse('body');
     
    ?>
    et voilà le template qui ouvre le pop-up systématiquement en php je ne sais pas comment savoir si le client a le pop-up ouvert ou fermer ????

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <html>
    	<head>
    	<meta http-equiv="refresh" content="{REFRESH};url={U_INSTANTMSG}">
    	<meta http-equiv="Content-Type" content="text/html; charset={S_CONTENT_ENCODING}" />
    	<script language="Javascript" type="text/javascript">
    	<!--
    	<!-- BEGIN msg -->
    		var {msg.WINDOW_NAME} = window.open('{msg.U_INSTANTMSG_POPUP}','{msg.WINDOW_NAME}','scrollbars=yes,width=715,height=600');
     
    		if(navigator.appName == 'Microsoft Internet Explorer') {msg.WINDOW_NAME}.location.href = {msg.WINDOW_NAME}.location.href;
    	<!-- END msg -->
    	//-->
    	</script>
    	</head>
    </html>

  6. #6
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    hmm si ton refresh sert juste à vérifier si on a eu des nouveaux mails... NE FAIS PAS DE REFRESH !

    utilise un settimeout() (fonction javascript), 1er arg = une fonction, 2ieme arg = un temps en milliseconde

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <script type="text/javascript" />
    function maFonctionDeVerificationDeNouveauxMailsWaouwQuelJoliNom() {
         // ici je fais mes requetes SQL
         // --
     
         // une fois que j'ai le résultat, j'utilise JS pour changer le contenu de mon div
         // Grâce à un getElementById()
     
         settimeout( "maFonctionDeVerificationDeNouveauxMailsWaouwQuelJoliNom()", 60000); // appel de ma fonction qui tue tout, toutes les 60 secondes
    }
    maFonctionDeVerificationDeNouveauxMailsWaouwQuelJoliNom();
    </script>

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    ça risque de faire un sacré boulot, car il faut tester pour x membres s'ils ont un ou x messages, si leur fenêtre pop-up est ouverte (au quel cas l'ouvrir) car faire un getElementById() sur une fenêtre fermé pas cool ...

    il faut prévoir le cas de discutions avec 4 membres en même temps ...

    déjà si je savais si pour le membre x la fenêtre pop-up est présente ou pas ...

  8. #8
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    en fait dans ta popup y'a quoi ?
    dans la page normal y'a quoi ?
    ou est le textarea qui disparait ?


    perso, le probleme ne me semble pas compliqué et la solution non plus mais j'ai p-e mal compris...

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    le pop-up contient les message envoyés et reçus et le textarea

    c'est quoi la page normale ?

    voilà la page pop-up

  10. #10
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    hmmm j'ai bien fait de poser la question, j'avais rien capté en fait

    bah sinon, c'est bien comme je le pensais :
    1] dans ta page tu rajoutes une fonction JavaScript settimeout() (en général entre les balises <head></head>)
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <script type="text/javascript" />
    function checkMsg() {
         // je récupère la DB des messages (d'aujourd'hui, pour opti la requete)
         // --
     
         // je fais un getElementById() du genre "div_msg_XXXX" (ou XXXX est le numéro d'id du message dans la DB)
     
         // si la fonction renvoie qqch c'est que le message existe déjà sur la page => on fait rien
         // sinon, on crée en JavaScript, un nouveau div qui aura pour ID => div_msg_XXXX (ou XXXX est le numéro d'ID du message qu'on doit ajouter)
     
         settimeout( "checkMsg()", 60000); // appel de ma fonction de refresh, toutes les 60 secondes
    }
    checkMsg();
    </script>
    <!-- ici le reste du code avec le formulaire -->

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    je vais essayer ça mais faut que je refasse une partie de mes php car là ça va coller ...

    dans le java faut faire le XMLHttpRequest(); ou ActiveXObject("Microsoft.XMLHTTP") pour lire la base ...

    donc du pain sur la planche je te tien au courant

    merci

Discussions similaires

  1. Problème reload Page sur onClick
    Par Lapinpanda dans le forum ASP.NET
    Réponses: 4
    Dernier message: 18/08/2009, 10h35
  2. Probléme de page de demarrage
    Par Wawar dans le forum Langage
    Réponses: 2
    Dernier message: 06/06/2005, 14h46
  3. Problème avec le TextArea
    Par pmboutteau dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 04/04/2005, 14h21
  4. Problème alinéa dans textarea
    Par guitaros dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 23/12/2004, 00h07
  5. [apache][htaccess]Problème de pages sécurisées
    Par Mel68 dans le forum Apache
    Réponses: 5
    Dernier message: 09/06/2004, 11h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo