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 :

Pagination dans un code "jquery Instant-search"


Sujet :

AJAX

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 43
    Points : 26
    Points
    26
    Par défaut Pagination dans un code "jquery Instant-search"
    Bonjour à tous ;-)

    Voilà, je voudrais faire un moteur de recherche avec un système d' autosuggest.
    j'ai glané sur le web un script qui s'en rapproche, il fait fonctionne bien,
    je peux aussi le faire fonctionner comme un moteur normal avec pagination des résultats,
    mais c'est justement là que ça bloque (la pagination):
    mes numéros de page s'affichent mais en cas de click dessus, ça ne va nulle part (page vide!)
    alors quelqu'un peut-il m'aider.
    NB: je suis loin d'être un as de l'ajax et du jquery, par contre je touche un peut au php et mysql.
    merci.

    je vous présente le chef-d'oeuvre:
    index.php (comprend une petite pagination qui affiche les pages mais ne fonctionne pas)

    Code html : 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
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title> 
    <link rel="stylesheet" href="style.css" type="text/css">
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    <script type="text/javascript" src="ajax.js"></script>
    </head>
    <body>
    <div id="content">
    <?php
    $query=@mysql_connect("localhost","root",""); 
    @mysql_select_db("booraqdb",$query);  
     
    $val='';
    if(isset($_POST['submit'])){
       if(!empty($_POST['name'])){//if2
          $val=$_POST['name'];
       }
    else{
         $val='';
       }
    }//if2
    ?>
    <center><img src="freeze.PNG"></center>
    <form method="post" action="index.php">Search : <input type="text" name="name" id="name" autocomplete="off" value="<?php echo $val;?>">
    <input type="submit" name="submit" id="submit" value="Search">
    </form>
     
    <div id="display"></div>
    <?php
    if(isset($_POST['submit'])){//if1
    if(!empty($_POST['name'])){//if2
       $name=$_POST['name'];
       //----------------------------------------------------------------------
       //nbArt est le nombre total de réponse
      $sql="SELECT COUNT(*) FROM moteur WHERE nom LIKE '%".$name."%'";
      $req=@mysql_query ($sql)or die (mysql_error());
      $data=@mysql_fetch_array($req);
      
      if($data[0]!=0) $nbArt=$data[0];
    else {echo "pas de résultats";
    exit();
    }
      
      $perPage=6;//nombre de résultats par page
      $nbPage=ceil($nbArt/$perPage);//nombre de page -arrondir à la valeur supérieure.    
      
      //vérifier si la variable 'page' existe !
      //cPage est la page courante ou page de début
        if(isset($_GET['page'])&& $_GET['page'] > 0 && $_GET['page'] <= $nbPage){
      $cPage=$_GET['page'];
      }
      else {
            $cPage=1;//page de début
      }
      
      $start=($cPage-1)*$perPage;//exemple cPage=168, perPage=6 alors on affiche les résultats: 1772....1777
      $sql="SELECT * FROM moteur WHERE nom LIKE '%".$name."%' ORDER BY id ASC LIMIT ".$start.",$perPage";//défini une plage de réponses
      $req=@mysql_query($sql)or die(mysql_error());
      
      while($data=@mysql_fetch_array($req)){
      echo "<B>".$data['id']."</B>&nbsp;";
      echo $data['nom']."<br>";  
      echo $data['adresse']."<br>";
      echo  "<hr>";
      } 
      
      //PAGINATION
      
      for($i=1;$i<=$nbPage;$i++){
            if($i==$cPage){//cPage est la page actuelle
                    echo " $i /";//lien inactif
            }//if
            else{
                    echo " <a href=\"index.php?nom=".$name."&page=".$i."\">".$i."</a> / " ;
                    
            //c'est un lien actif
      }//else
      }//for
        
    }//if2
    else{
         echo "No Results";
    }
    }//if1
    ?>
    </div>
    </body>
    </html>

    ajax.php (traite l'autosuggest) il fonctionne bien
    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
    17
    <?php
    $query=@mysql_connect("localhost","root","");
    @mysql_select_db("booraqdb",$query);
     
    if(isset($_POST['name'])){	
       $name=trim($_POST['name']);
       $query2=@mysql_query("SELECT * FROM moteur WHERE nom LIKE '%$name%' ORDER BY id ASC limit 0,6 ");//c'est l'autosuggest
     
       echo "<ul>";
       while($data=@mysql_fetch_array($query2)){
    ?>
    <li onclick='fill("<?php echo $data['nom']; ?>")'><?php echo $data['nom']; ?></li>
    <?php
       }//while
    }//if
    ?>
    </ul>

    ajax.js (code jquery pour l''auto-suggest, fonctionne bien)
    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
    function fill(Value){
         $('#name').val(Value);
         $('#display').hide();
    }
     
    $(document).ready(function(){
        $("#name").keyup(function(){
        var name = $('#name').val();
        if(name==""){
           $("#display").html("");
        }
        else{
             $.ajax({
             type: "POST",
             url: "ajax.php",
             data: "name="+ name ,
             success: function(html){
                 $("#display").html(html).show();
                 }
             });
         }
    });
    });

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Faudrait essayer de séparer les problèmes. Dans un premier temps essaies de faire fonctionner ton système de pagination sans l'autocomplete.

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

Discussions similaires

  1. Etrange problème rencontré dans mon code.
    Par bernardmichel dans le forum VBA Access
    Réponses: 8
    Dernier message: 17/09/2015, 05h13
  2. [GWT 2.3] Problème pagination dans un CellTable
    Par womannosky dans le forum GWT et Vaadin
    Réponses: 2
    Dernier message: 13/10/2011, 13h20
  3. Réponses: 11
    Dernier message: 01/08/2008, 11h40
  4. Problème inconnu dans mon code
    Par mouchT8 dans le forum C
    Réponses: 5
    Dernier message: 17/05/2008, 20h52
  5. Quel est le problème dans ce code ?
    Par Luther13 dans le forum C
    Réponses: 12
    Dernier message: 26/08/2003, 16h09

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