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

jQuery Discussion :

Résultat SQL dans une page Ajax [AJAX]


Sujet :

jQuery

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 18
    Par défaut Résultat SQL dans une page Ajax
    Bonjour,

    Je poste rarement mais la je coince un peu.

    Pour être précis, j'ai une page avec un lien vers la page comment.php

    Dans cette page j'ai fait cette requête
    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
     
    <?php
    $chemins = substr($_SERVER['HTTP_REFERER'], 28);
    mysql_select_db($database_cnx_com, $cnx_com);
    $query_data = "SELECT * FROM tuto_pres WHERE lien='".$chemins."'";
    $result_data = mysql_query($query_data) or die('MySql Error' . mysql_error());
     
    while($rows=mysql_fetch_array($result_data))
    {
    $page_id = $rows['id_tuto'];
    //echo '<p>'.$rows['id_tuto'].'</p>';
     
    //echo '<span class="navy">Vous effectuez un commentaire sur la page : '.$rows['lien'].'</span>';
    $lien = $rows['lien'];
    }
     
    ?>
    Cette requete récupére une partie de l'url ($chemins)
    Ce chemin de type (dossier/page.php) est dans une table, qui a donc un id

    ensuite avec le code javascript suivant, j'appelle la page (load_data.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
     
    <script type="text/javascript">
    		//<![CDATA[
                $(document).ready(function(){
                    function loading_show(){
                        $('#loading').html("<img src='images/loading_blue.gif'/>").fadeIn('fast');
                    }
                    function loading_hide(){
                        $('#loading').fadeOut('fast');
                    }
    				var page_id = <?php echo $page_id; ?>
                    function loadData(page){
                        loading_show();                    
                        $.ajax
                        ({
                            type: "POST",
                            url: "load_data.php",
                            data: "page="+page"page_id="+page_id,
    						//data: "data1="+myindex+"&data2="+selValue,
                            success: function(msg)
                            {
                                $("#contuto").ajaxComplete(function(event, request, settings)
                                {
                                    loading_hide();
                                    $("#contuto").html(msg);
                                });
                            }
                        });
                    }
                    loadData(1);  // For first time page load default results
                    $('#contuto .pagination li.active').live('click',function(){
                        var page = $(this).attr('p');
                        loadData(page);
     
                    });
     
    				$("#nom").focus();           
                });
    			//]]>
            </script>
    Dans la page (load_data) j'ai cette requête qui permet l'affichage des commentaires
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    include_once('Connections/cnx_com.php');
    mysql_select_db($database_cnx_com, $cnx_com);
    $query_pag_data = "SELECT * FROM com_comment WHERE page_id='".$page_id."' ORDER BY id_com DESC LIMIT $start, $per_page";
    Ma question est que j'aimerais grâce à ceci $page_id = $rows['id_tuto'];, c'est à dire récupérer l'id, de le transmettre à la requete de la page
    (load_data.php), mais cela ne fonctionne pas.

    Dans le code javascript j'avais mis ceci
    var page_id = <?php echo $page_id; ?>
    puis de l'ajouter à data

    data: "page="+page"page_id="+page_id,

    ce qui est surprenant en regardant le code source de cette page on voit bien le numéro d'id

    donc je me disais que dans la page (load_data.php), j'aurais pu récupérer cet id avec $page_id = $_POST'page_id']; dans la requete d'affichage.

    Malheureusement rien ne fonctionne, auriez vous une idée, ou suggestion, à me proposer.

    Est ce possible de faire ce genre de chose ? c'est la question que je me pose.

    Cela fait un bon bout de temps que je la dessus, et je sais plus quoi tester.
    Merci de votre aide.

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    data: "page="+page"page_id="+page_id,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     data: "page=" + page + "&page_id="+page_id,
    Et si les chaînes à envoyer comporteraient des caractères spéciaux, utilise encodeURIComponent.

    A+.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 18
    Par défaut
    Bonjour,

    Merci de votre réponse, effectivement, j'avais déjà entre temps essayé votre proposition.

    Malheureusement je ne récupére pas ce numéro d'id dans ma requete.

    le fait d'avoir déclaré dans le code JavaScript ceci var page_id = <?php echo $page_id; ?>

    puis ayant mis ceci comme vous l'avais écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    data: "page=" + page + "&page_id="+page_id,
    Puis ayant ceci dans ma page (load_data.php), je ne récupére pas cet id dans la clause WHERE.
    Ce qui me permet d'afficher les messages ayant cet id.

    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
     
    if($_POST['page'] && $_POST['page_id'])
    {
    $page = $_POST['page'];
    $page_id = $_POST'page_id'];
    $cur_page = $page;
    $page -= 1;
    $per_page = 3;
    $previous_btn = true;
    $next_btn = true;
    $first_btn = true;
    $last_btn = true;
    $start = $page * $per_page;
    include_once('Connections/cnx_com.php');
    mysql_select_db($database_cnx_com, $cnx_com);
    $query_pag_data = "SELECT * FROM com_comment WHERE page_id='".$page_id."' ORDER BY id_com DESC LIMIT $start, $per_page";
    $result_pag_data = mysql_query($query_pag_data) or die('MySql Error' . mysql_error());
    $totalRows = mysql_num_rows($result_pag_data);
    Alors est ce que la déclaration suivante est bonne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if($_POST['page'] && $_POST['page_id'])
    {
    $page = $_POST['page'];
    $page_id = $_POST'page_id'];
    Mais même comme cela, j'ai rien du tout.
    J'avais entre temps essayé avec les sessions ca avait l'air de fonctionner.
    Peut être est ce la solution après tout.

    De plus j'ai épluché plus de 100 pages du forum dans l'espoir que quelqu'un aurait eu ce même problème.
    Mais même mes nombreuses recherches sur le Net je ne trouve rien.

    @+ de vous lire et merci

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    if($_POST['page'] && $_POST['page_id'])
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST['page']) && isset($_POST['page_id']))
    Peut-on voir ton code html et js généré?

    A+.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 18
    Par défaut
    Voici le code généré du navigateur (source), je sais pas si cela va aider!
    Pour avoir ce code je l'ai affiché dans un nouvel onglet, car généralement cette page est ouverte via une boite modale.
    Mais l'un dans l'autre j'ai pas l'affichage voulu.

    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
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>comment</title>
    <link href="css/livre.css" rel="stylesheet" type="text/css" /> 
    <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
            <script type="text/javascript">
    		//<![CDATA[
                $(document).ready(function(){
                    function loading_show(){
                        $('#loading').html("<img src='images/loading_blue.gif'/>").fadeIn('fast');
                    }
                    function loading_hide(){
                        $('#loading').fadeOut('fast');
                    }
    		var page_id = 64                
    		function loadData(page){
                        loading_show();                    
                        $.ajax
                        ({
                            type: "POST",
                            url: "load_data.php",
                            //data: "page="+page"page_id="+page_id,
    			data: "page=" + page + "&page_id="+page_id,
                            success: function(msg)
                            {
                                $("#contuto").ajaxComplete(function(event, request, settings)
                                {
                                    loading_hide();
                                    $("#contuto").html(msg);
                                });
                            }
                        });
                    }
                    loadData(1);  // For first time page load default results
                    $('#contuto .pagination li.active').live('click',function(){
                        var page = $(this).attr('p');
                        loadData(page);
                        
                    });
    				
    				$("#nom").focus();           
                });
    			//]]>
            </script>
    <script type="text/javascript">
    function limite(textarea, max)
    {
        if(textarea.value.length >= max)
        {
            textarea.value = textarea.value.substring(0,max);
        }
        var reste = max - textarea.value.length;
        var affichage_reste =  reste + ' caractres restants';
        document.getElementById('max_desc').innerHTML = affichage_reste;
    }
    </script>
           
    </head>
    <body>
    <!--<div id="outerWrapperG"> --><!--debut outerWrapper2 -->
    
    <!--chargement des données du livre d'or -->
            <div id="loading"></div>
            <div id="contuto">
                <div class="comment"></div>
                <div class="pagination"></div>
            </div>
    
    <div id="addCommentContainer">
    <noscript><span class="error">Veuillez activer les options javascript de votre navigateur</span></noscript>
                    <br /><br />
    <form id="form1" name="form1" method="POST" action="/macmicro35/commentaires/comment.php">
    <label for="nom">Votre Nom : <span class="rouge">*</span></label>
    <div class="espacement"></div>
    <input type="text" name="nom" id="nom" style="text-transform:capitalize" value="" size="32" />
    <br /><br />
    
    <label for="email">Votre Email : <span class="rouge">*</span></label>
    <div class="espacement"></div>
    <input type="text" name="email" id="email" value="" size="32" />
    <br /><br />
    <div class="espacement"></div>
    <label for="site">Site Web : (Facultatif)</label>
    <input type="text" name="site" id="site" value="" size="32" onpaste="return false;" />
    <br /><br />
    
    <label for="verif">Saisir le code : <span class="rouge">*</span></label>
    <div class="espacement"></div>
    <input type="text" name="verif" id="verif" size="10" maxlength="6" />&nbsp;
    <img src="captcha.php" alt="image de protection" align="absmiddle" />&nbsp;
    <a href="#" class="info"><span>Saisir les caractéres en noir</span><img src="images/icon_alert.gif" width="16" height="15" /></a>
    
    <br /><br />
    
    <label for="message">Commentaire :</label>
    <div class="espacement"></div>
    <textarea name="message" id="message" cols="35" rows="6" onkeyup="limite(this,'120');" onkeydown="limite(this,'120');" onpaste="return false;">
          </textarea>
    <span class="txt" id="max_desc"></span>
    <br /><br />
    
    <input type="hidden" name="submitted" id="submitted" value="true" />
    <button class="lienui" type="submit">Envoyer votre message</button>
    <input type="hidden" name="time" value="1340883712" />
    <input type="hidden" name="page_id" id="page_id" value="64" />
    <input type="hidden" name="page_lien" id="page_lien" value="framework/ckeditor_jquery.php" />
    </form>
    
    <p class="cupertino">Il y a 4 Commentaires </p></div>
    
    
    
    	<!--</div> --><!--fin outerWrapperG -->
    </body>
    </html>
    J'ai mis en rouge le numéro d'id généré par la requete
    et le div dans lequel la page load_data.php est chargée.

    on voit bien que le numéro d'id est récupérer non seulement dans le code javascript mais aussi dans un champ de type hidden

    ce qui fait que ce numéro est impossible à récupérer dans la requete d'affichage de la page load_data.php qui consiste à afficher les commentaires selon cet id.
    entre temps je vais essayer de définir les champs on verra bien.
    Merci d'avoir déplacé mon message, cordialement

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 18
    Par défaut
    Bonjour,
    Finalement n'ayant pas trouvé comment passer une variable d'enregistrement issue d'une requête MySQL dans une requête MySQL d'une page loader en ajax, malgré mes nombreuses recherches, j'ai opté pour une variable de session c'est le seul moyen que j'ai trouvé.
    Merci à ceux qui ont pris le temps de me répondre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 21/08/2012, 23h13
  2. [AJAX] Résultat SQL dans une page Ajax - V2
    Par macmicro dans le forum jQuery
    Réponses: 1
    Dernier message: 01/07/2012, 12h12
  3. Changement select et post dans une page (Ajax)
    Par zulot dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/09/2008, 11h06
  4. [AJAX] Div contenu dans une page ajax
    Par Xris dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/06/2007, 14h34

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