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

AJAX Discussion :

[AJAX] Recuperer une div dynamique


Sujet :

AJAX

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 44
    Points : 20
    Points
    20
    Par défaut [AJAX] Recuperer une div dynamique
    Bonjour,

    Vous m'excuserez si je ne suis pas dans la bonne section, je ne savais où poster (php ou ici), vous le comprendrez par la suite.

    J'ai un site avec des membres.

    Je suis en train de mettre en place un chat avec des cams.
    Grace à une compilation de VideoiO et de JwPlayer, j'ai enfin réussi à faire un streaming complet avec des rafraichissement du coté du flash en cas de coupure.

    En fouillant sur le net, je trouve pas mal de chose sur ajax, langage que je ne connaissais pas et qui, je pense, pourrait m'etre utile dans la finalisation de mon petit projet.

    Je m'explique.

    J'ai donc un fichier qui envoie la cam (index.php):
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="style.css" />
    <? require_once '../internals/$config.php';
    require_once '../internals/Header.inc.php';
    
    $play = $_GET['play'];
    
    
     $sql = SK_MySQL::placeholder(
    
    "SELECT `profile_id`,`username`,`password`
    
    FROM `".TBL_PROFILE."`
    
    WHERE username='?'", $_SESSION['%http_user%'][username]
    
    );
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
    
    
    
    // on fait une boucle qui va faire un tour pour chaque enregistrement
    while($data = mysql_fetch_assoc($req))
        {
        // on affiche les informations de l'enregistrement en cours
    $chat_user= $data['username'];
    $chat_id= $data['profile_id'];
        } 
    ?>
    <script type='text/javascript' src='./jwplayer.js'></script>
    <script type="text/javascript" src="/jwplayer/jwplayer.js"></script>
    </head>
    <body>
     <script>
      function popup(popupType) {
       window.open("../cam/macam2.php");
      }
     </script>
     <form method="post" action="" onSubmit="popup()">
      <input type="text" name="pseudo" value="<? echo $chat_user; ?>"/>
      <input type="submit"/>
     </form>
    <div id='player'>This text will be replaced</div>
    <script type='text/javascript'>
      jwplayer('player').setup({
        flashplayer: "jwplayer.swf",
    	logo: "../layout/img/watermark2.png",
    'logo.timeout': "60",
        type: "rtmp",
        streamer: "rtmp://monhost",
        autostart: "true",
        bufferlength: "3",
        file: "e_<?php echo $_POST['pseudo']; ?>",
        controlbar: "bottom",
        width: "320",
        height: "260"
      });
    
    	<!--
    //Script to handle time out; used in case live streaming stopped
    //by ip5up 2012-01-26
    var t;
    var timer=5000;
    jwplayer().onIdle(function() {
    t=setTimeout("jwplayer().play()",timer);
    });
    
    </script>
    </body>
    </html>
    D'un autre coté, j'ai le popup qui contient la cam qui sera envoyée (cam.php):
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <?php
    
    
     error_reporting(0);
    
    //if(!$_SESSION)
    
    //session_start();
    require_once '../internals/$config.php';
    require_once '../internals/Header.inc.php';
    
    
    
     $sql = SK_MySQL::placeholder(
    
    "SELECT `profile_id`,`username`,`password`
    
    FROM `".TBL_PROFILE."`
    
    WHERE username='?'", $_SESSION['%http_user%'][username]
    
    );
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
    
    
    
    // on fait une boucle qui va faire un tour pour chaque enregistrement
    while($data = mysql_fetch_assoc($req))
        {
        // on affiche les informations de l'enregistrement en cours
    $chat_user= $data['username'];
    $chat_id= $data['profile_id'];
        } 
    ?>
    
    <body>
    <script>
    function getFlashMovie(movieName) {
        var isIE = navigator.appName.indexOf("Microsoft") != -1;
        return (isIE) ? window[movieName] : document[movieName];  
    }
    </script>
    <td>
    <center>
    <object type="application/x-shockwave-flash" data="VideoIO11.swf"
        id="video1" width="320" height="240" quality="high">
        <param name="movie" value="VideoIO11.swf" />
        <param name="quality" value="high" />
        <param name="bgcolor" value="#000000" />
        <param name="allowFullScreen" value="true" />
        <param name="allowScriptAccess" value="always" />
        <param name="flashVars" value="controls=true" />
    
    </object>
    <center>
    <input id="src1" type="hidden" autocomplete="off" style="width:170px;"
        value="rtmp://monhost"/>
    <input id="publish1" type="hidden" autocomplete="on" style="width:50px;"
        value="<? echo $chat_user; ?>"/>
    <input value="Envoyer ma Cam" type="button" 
        onclick="getFlashMovie('video1').setProperty('src', 
            document.getElementById('src1').value
            + '?publish=' + document.getElementById('publish1').value)"/>
    <input value="Arrêter" type="button" 
        onclick="getFlashMovie('video1').setProperty('src', null)"/>
    </center>
    
    </body>
    </html>
    Comme on peut se rendre compte, seule la valeur en rouge dans cam.php doit etre récupérée dans index.php.
    Sans rafraichir une quelconque div (pour ne pas couper les cams en cours), y aurait il un moyen de recuperer des valeurs de cam.php et de les envoyer à index.php ?

    Je ne cherche pas une solution toute prete mais, pour le moment, une base afin de savoir comment je pourrait mettre en marche tout çà.

    Merci à tous de votre aide.

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    pour la récupération des données il existe la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var valeurElement = document.getElementById('id_element').value;
    ensuite ce sont les valeurs récupérées que tu passes en paramètre lors de ton appel Ajax.

  3. #3
    Membre du Club

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2012
    Messages : 30
    Points : 66
    Points
    66
    Par défaut
    La difficulté c'est que "cam.php" n'est pas un dataFiles mais un fichier intégré.
    Si ton but est effectivement de récupérer des données, je te suggère de dédié un fichier *.php pour ça.
    puis créer une requête AJAX pour obtenir l'information et une fois obtenu générer tes composants flash "à la volée"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var _swf=document.createElement("object");
    [...]
    document.body.appendChild(_swf);

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 44
    Points : 20
    Points
    20
    Par défaut
    Salut et merci à tous deux pour vos réponses.

    @NoSmoking,
    J'ai pensé à cette solution. D'ailleurs, c'est d'après cet élément que j'ai commencé à fouiner du coté de Ajax.
    Le problème est que je ne peux pas récupérer cette div coté client puisque celui ci, n'aura que l'embed de la cam à envoyer.
    C'est là que mon problème se pose.

    @sdamart,

    Merci également pour ton attention.
    Là, mes connaissances font que je ne vois pas très bien où tu veux en venir.
    Quant tu parles de créer un fichier php, tu penses à créer des données via mysql ?
    Toutefois, sache que tout est modifiable.
    J'ai créé ces 2 fichiers parce que je ne savais pas trop comment m'y prendre.
    Le plus gros boulot était de pouvoir récupérer des flux videos intéractivement. Ceci est fait grace à Videoi0 et Jwplayer.
    Il ne reste maintenant qu'à pouvoir mettre çà en place. Je suis peut etre parti sur une mauvaise piste.

    Merci à vous et bonnes fetes

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 44
    Points : 20
    Points
    20
    Par défaut
    Salut,

    J'avance petit à petit dans mon idée.

    Par contre, j'ai un peu refondé la chose.

    Merci à vous pour vos réponses.

    Je posterai le résultat dès que fini.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 44
    Points : 20
    Points
    20
    Par défaut
    Bon, finalement, je tourne en rond !
    Je me perds avec le coté serveur et client.

    Impossible d'avancer.

    Je donne ma langue au chat.

    Si une âme charitable passait par là....

    Voilà où j'en suis : http://www.developpez.net/forums/d12...e/#post7043803

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 44
    Points : 20
    Points
    20
    Par défaut
    C'est bien ce que j'explique dans le post précédent.

    Si j'utilise :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    session_start();
    $_SESSION['chat_user'] = $chat_user;
    ?>
    j'ai toujours la meme valeur qui est renvoyée puisque c'est celle du membre connecté.

  9. #9
    Membre du Club

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2012
    Messages : 30
    Points : 66
    Points
    66
    Par défaut
    Si on essaye de remettre les chose à plat.
    D'un coté tu as un fichier "client" qui contient un élément flash et qui appel une popup qui contient un autre élément flash.

    Par rapport à ton premier post, je vois une faille un peu grande.
    Pour ta question, c'est un problème PHP effectivement, c'est d'abord un problème PHP. Et pour ta deuxième question AJAX n'est pas un langage mais une technologie.

    La faille
    Tu créer une requête SQL en utilisant la valeur d'une variable de SESSION. Mais la première fois que ton utilisateur arrive sur le site, celui-ci n'est pas connecté.
    Donc $_SESSION['username'] vaut null la requête ne retourne aucun résultat donc $user_name vaut "";

    Donc pour contre-carré ces petit tracas de client / serveur,
    Je suggère d'abord ceci
    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
     
    <script>
      function popup(popupType) {
     
    //connecté l'utilisateur ($_SESSION['username']=$_POST['user_name']) 
    //Je te donne la syntaxe classique
    var pseudo=document.getElementsByName('pseudo')[0].value;
    var xhr=new XMLHttpRequest();
    xhr.open("POST","async_connect.php",false);
    xhr.send("user_name="+pseudo);
    if(xhr.responseText=="ok")
    //Tu ouvre ta popup
    window.open("../cam/macam2.php");
    //et quoi qu'il arrive tu return false
    return false;// ainsi tes données ne sont pas envoyées
      }
     </script>
     <form method="post" action="" onSubmit="popup()">
      <input type="text" name="pseudo" value="<? echo $chat_user; ?>"/>
      <input type="submit"/>
     </form>
    Ainsi lorsque la popup va s'ouvrir, la variable de SESSION aura bien une valeur
    Et tu pourra démêler ce problème.

Discussions similaires

  1. garder un texte dans une div dynamique ajax
    Par voyageurdumonde dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/04/2012, 10h35
  2. [AJAX] comment recupere une div dans une fonction ajax
    Par bachboucha dans le forum AJAX
    Réponses: 14
    Dernier message: 26/05/2009, 14h59
  3. [AJAX] Atteindre une div situer dans un autre fichier
    Par Cube55 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/08/2007, 13h54
  4. [AJAX] rafraichir une div !
    Par omantherasta dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 24/12/2006, 17h35
  5. [AJAX] Charger une liste dynamiquement
    Par macra dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/10/2006, 21h34

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