Bonjour.

J'ai fais un code qui me permet d'afficher avec une pagination en ajax qui fonctionne très bien (index.php et fetch_pages.php). Aucun problème de ce côté.

J'ai tenté d'ajouter de faire un bout de code pour faire 5 par ligne mais, ça donne pas le résultat souhaité avec le reste de mon code.

Le 5 par ligne, si je le fait tout seul pour afficher un nombre de colonnes, ça fonctionne. Mais pas quand je veux l'intégrer au reste de fetch_pages.php.

J'ai probablement pas bien positionner ce bout de code à la bonne place.

A l'affichage, quand j'indique une pagination de 5 par page, avec 5 par ligne, ça m'affiche seulement 1 ligne. Si je mets 25 par page, avec 5 par ligne, ça m'affiche seulement 5 mais en sautant à coup de 5.

Pour aider à repérer là où ça ne va pas, j'ai commenté les lignes à propos des colonnes par ligne. (lignes concernées: 26,35,41 et 45)

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
<?php session_start();
 
include("config.inc.php");
 
$p_n = isset($_POST['page']) ? $_POST['page'] : '' ;
$v_s = isset($_POST['s']) ? "%". $_POST['s'] ."%" : '' ;
 
$page_number = filter_var($p_n, FILTER_SANITIZE_NUMBER_INT, FILTER_FLAG_STRIP_HIGH);
$valid_search = filter_var($v_s, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_FLAG_STRIP_HIGH);
 
if(!is_numeric($page_number)){die('Invalid page number!');}
 
$position = ($page_number * $item_per_page);
 
$results = $dbh->prepare(' SELECT id,name,message FROM paginate WHERE name LIKE :searchname OR message LIKE :searchmsgs ORDER BY id DESC LIMIT :position, :item_per_page ');
$results->bindParam(':searchname', $valid_search, PDO::PARAM_STR, 25);
$results->bindParam(':searchmsgs', $valid_search, PDO::PARAM_STR, 25);
$results->bindParam(':position', $position, PDO::PARAM_INT, 4);
$results->bindParam(':item_per_page', $item_per_page, PDO::PARAM_INT, 4);
$results->execute();
 
$strreplaceregexp = str_replace("%","",$valid_search);
 
echo '<ul class="page_result">';
 
$i = 0;// initialiser pour un nombre de colonne
 
$alternebg_i = 0;
 
while ($row = $results->fetch())
{
 
  $alternebg = ($alternebg_i++ & 1) ? '#111' : '#112';
 
  $i++;//On l'incrémente, ça nous aide à savoir combien d'éléments ont été affichés.
 
  $regexp = '/('.$strreplaceregexp.')/i';
  $remplacepar = '<span class="surbriancesearch">$1</span>';
  $row['message'] =  preg_replace($regexp, $remplacepar, $row['message']);
 
  if ( $i % 5 === 0 ) {//Si $i est un multiple de 5
 
    echo '<div style="background-color:'. $alternebg .';border-radius:12px"><li id="item_'.$row["id"].'"><span class="queryid">'.$row["id"].'</span><span class="page_name">'.$row["name"].'</span><span class="page_message">'.$row["message"].'</span></li></div>';    
 
  }//fin multiple de 5
 
}
echo '</ul>';
 
if( $page_number+1 != $_SESSION['total_pages'] ) 
{
  echo '<div style="margin-bottom:20px;color:black"><div style="float:left;margin-top:3px;margin-left:33px"><span style="background-color:white">&nbsp;Page :<strong>';
  echo $page_number+1;
  echo ' / ';
  echo $_SESSION['total_pages'].'</strong>&nbsp;</span></div>';
  echo '<a class="reload" href="#top">TOP</a><br>';
}
else
{
  echo '<div style="margin-bottom:20px;color:black"><div style="float:left;margin-top:3px;margin-left:33px"><span style="background-color:white">&nbsp;Page :<strong>';
  echo $page_number+1;
  echo ' / ';
  echo $_SESSION['total_pages'].'</strong>&nbsp;</span></div>';
  echo '<a class="reload" href="#top">TOP</a><br>';
}
 
?>
Si quelqu'un peut m'éclairer sur cela, ça serait bien apprécié. Merci.