probleme de boucle

cedric-67
Invité n'ayant pas de compte PHPfrance

07 févr. 2013, 18:18

Bonjour,
J'ai un script php a modifier. Actuellement ce script divise le nombre d'option par 5 pour en faire une pagination, il affiche donc 5 options par pages.
J'aimerai tout afficher en une seul page.
if (count(${'nom'.$modele[$i]})>0){
					
						//variable qui compte le nombre d'option, au bout de 5 on change de page
						$page=0;
						$pagetotal=0;
						
						//on calcule le nb de page (ceil=> entier supérieur)					
						$pagetotal=ceil((count(${'nom'.$modele[$i]})/5));
						//echo $pagetotal;
						
						$flag=false;
						
						
						for ($j=1;$j<=count(${'nom'.$modele[$i]});$j++){
							
							
							
							if ($totaloption[$i]%5==0){
							
							
								$page++;
								if ($page>'1'){
									//echo "debut";
									echo "<div style='display:none;' id='".$modele[$i].$page."'>";
								}
								else{
									//echo "debut";
									echo "<div id='".$modele[$i].$page."'>";
								}
							}
							$totaloption[$i]++;
																		
						
						//tableau des options
							echo "<div style='margin-top:-1px; width:600px;'>";
							echo "
								<table BORDER=\"1\"  style='width: 600px;' cellspacing=\"0\" cellpadding=\"0\">
									<tr>
										<td align='center' width=80px>
											".${'reference'.$modele[$i]}[$j]."
										</td>
										<td align='center' width=170px>";
										
										//on test si l'option a une photo
										$filename = "img/options/".${'reference'.$modele[$i]}[$j].".jpg";
										if (file_exists($filename)) {
											echo "<img src='img/options/".${'reference'.$modele[$i]}[$j].".jpg' ALT='${'nom'.$modele[$i]}[$j]'>";
										}
										else 
										{
											echo 'Pas de photo disponible';
										}
										echo "</td>
										<td align='justify'>
											".${'nom'.$modele[$i]}[$j]."
										</td>
										<td align='center' width=80px>
											".number_format(${'prix'.$modele[$i]}[$j], 2, ',', ' ')." €
										</td>
										<td align='center' width=20px>
											<input type='checkbox' id='".$modele[$i]."-".$j."' onChange='calcultotal(\"".${'prix'.$modele[$i]}[$j]."\", \"".$modele[$i]."-".$j."\")' name='options[]' value='".${'reference'.$modele[$i]}[$j]."*".$modele[$i]."'>
										</td>
									</tr>
									
								</table>";	
							// à la fin des 5 options, on affiche:
							if ($totaloption[$i]%5==0 || count(${'nom'.$modele[$i]})==$totaloption[$i]){
								echo "Page: $page/$pagetotal";
								echo "<br><br>";
							}
							
							echo "</div>";
						
						if ($totaloption[$i]%5==0 || $totaloption[$i]==count(${'nom'.$modele[$i]})){
							echo '</div>';
						}
						
						}
						
					}
					
					
					//sinon
					else{
						echo "<br>Il n'y a pas d'options disponibles pour ce modèle.";
					}
il s'agit d'un simple tableau avec la référence de l'option, une photo, la description et une checkbox.

Merci pour votre aide.

Petit nouveau ! | 6 Messages

07 févr. 2013, 20:37

Salut,

à vue de nez, il me semble qu'il suffit de supprimer ces deux bouts de code :

Code : Tout sélectionner

// à la fin des 5 options, on affiche: if ($totaloption[$i]%5==0 || count(${'nom'.$modele[$i]})==$totaloption[$i]){ echo "Page: $page/$pagetotal"; echo "<br><br>"; }

Code : Tout sélectionner

if ($totaloption[$i]%5==0 || $totaloption[$i]==count(${'nom'.$modele[$i]})){ echo '</div>'; }
Créateur de sites internet indépendant dans le département de l'Ain
developpement web

cedric-67
Invité n'ayant pas de compte PHPfrance

08 févr. 2013, 10:10

Merci pour la réponse,

Concernant le 1er bout de code :
 // à la fin des 5 options, on affiche:
      if ($totaloption[$i]%5==0 || count(${'nom'.$modele[$i]})==$totaloption[$i]){
            echo "Page: $page/$pagetotal";
            echo "<br><br>";
      }
il sert juste a afficher la pagination, donc effectivement si je le retire je ne vois plus marqué (page 1/5)

Mais pour le second morceau :
if ($totaloption[$i]%5==0 || $totaloption[$i]==count(${'nom'.$modele[$i]})){
							
						}
Si je le retire il n'affiche plus rien...