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

JavaScript Discussion :

[AJAX] - Pb pour empêcher l'initialisation d'un variable


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Points : 61
    Points
    61
    Par défaut [AJAX] - Pb pour empêcher l'initialisation d'un variable
    Bonjour,

    je tente d'utiliser ajax pour rafraichir une liste à l'aide d'un bouton previous et next. Ainsi je souhaite afficher les élement de ma table 10 en 10.

    voici mon code dans liste.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
     
    <script type="text/javascript">
    function writediv(texte)
    {
    document.getElementById('listebox').innerHTML = texte;
    }
     
    function reloadplus()
    {
    {
    if(texte = file('ajax.php?sens=plus'))
    {
    writediv(texte);
    }
    }
    }
     
    function reloadmoins()
    {
    {
    if(texte = file('ajax.php?sens=moins'))
    {
    writediv(texte);
    }
    }
    }
     
     
     
    function file(fichier)
    {
    if(window.XMLHttpRequest) // FIREFOX
    xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) // IE
    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else
    return(false);
    xhr_object.open("GET", fichier, false);
    xhr_object.send(null);
    if(xhr_object.readyState == 4) return(xhr_object.responseText);
    else return(false);
    }
     
     
    </script>
     
    <form action="">
    <table width="100%">
    <tr><td><input type='button' name='previous' value='<<' onClick='reloadmoins()'/></td>
    <td><input type='button' name='next' value='>>' onClick='reloadplus()' /> </td></tr>
    </table>
    <div id="listebox"></div>
    </form>
    et dans mon ajax.php j'ai:
    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
     
    <?php
    define( "_VALID_MOS", 1 );
     
    global $database, $mainframe,$mospath, $my,$limit;
     
    $limit=1;
    $first = isset ( $first ) ? $first : 0 ;
    $sens=$_GET["sens"];
            if ($sens=='moins'){
                    if($first>=$limit){
                                    $first=$first-$limit;
                    }else{
                            $first=0;
                    }
            }else if ($sens=='plus'){
                                    $first=$first+$limit;
            }
     
     
    // get paths
    $mospath = str_replace('\\','/',dirname(dirname(dirname(__FILE__))));
     
    // get mos basics
    chdir($mospath);
    require_once('configuration.php');
    require_once('includes/mambo.php');
     
    global $rows,$row;
    $database = new database( $mosConfig_host, $mosConfig_user, $mosConfig_password, $mosConfig_db, $mosConfig_dbprefix );
    $database->setQuery("SELECT * FROM #__meta_modele LIMIT ".$first.",".$limit);
    $rows = $database->loadObjectList();
    foreach($rows as $row){
            echo $row->name_meta_modele."<br/>";
    }
    ?>

    mon souci est que ma variable $first se réinitialise à chaque fois à zéro et j'ignore comment faire pour que cette variable ne soit initialisé qu'une seule fois. si quelqu'un peut m'aider.

    PS: ça se passe dans un CMS, mais le problème ne vient pas de là.

  2. #2
    Membre actif
    Homme Profil pro
    PDG
    Inscrit en
    Septembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : PDG
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Points : 225
    Points
    225
    Par défaut
    C'est simple, il faut que tu passes $first à chaque fois car cette valeur n'est pas sauvegardée.

    Dans ton echo ajoute la valeur de ton $first en utilisant un caractère spécial pour le séparer des autres données.
    Ensuite, quand tu récupères l'ensemble tu fais un split sur ce caractère (par exemple "|").
    Tu obtiendras un tableau avec en [0] les données à afficher et en [1] la valeur de ton $first.
    Modifie tes fonctions reloadplus() et reloadmoins() pour leur passer ce $first.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function reloadplus(first)
    {
    if(texte = file('ajax.php?sens=plus&'+first))
    {
    writediv(texte);
    }
    }
    P.S.: Tu as des parenthèses en trop dans ces fonctions.
    P.S.2: Je ne vois pas l'intéret de mettre un foreach() pour afficher tes données puisque tu mets $limit à 1.

Discussions similaires

  1. Code pour empêcher la modifcation d'une cellule
    Par gaefor dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/08/2007, 05h55
  2. Simuler une activité pour empêcher une déconnection
    Par docjfnoel dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 28/05/2007, 10h05
  3. Condition pour empêcher une division par 0
    Par superdj dans le forum Pascal
    Réponses: 6
    Dernier message: 09/10/2006, 20h32
  4. Réponses: 2
    Dernier message: 06/10/2006, 10h38
  5. [Ajax] probleme pour parser une reponse
    Par zola dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 04/05/2006, 17h35

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