iframe ?!

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : iframe ?!

par StarT » 07 nov. 2005, 12:52

Un très grand merci à toi Truc ! ça marche nickel ! :D

par Truc » 07 nov. 2005, 00:31

eh bien c'est les liens les plus simples :wink:

tu as deja les numéros de pages pour faire ce que tu veut
=> 0 pour la première page
=> $nb_pages pour la dernière page

// lien pour la 1ere page, le numero de page se trouve juste apres "$url . '0"
$lien = $url . '0&pays_combo=' .$pays_combo
                .'&sub_ville=' .$sub_ville
                .'&sub_type_achat=' .$sub_type_achat
                .'&sub_type_logement=' .$sub_type_logement
                .'&meublier=' .$meublier
                .'&radionchk=' .$radionchk
                .'&radionchk1=' .$radionchk1;
$barre_nav .= "<a href=\"". $lien."\" title=\"page 1\"><<</a>";
la tu as le lien 1ere page tu peut faire la meme chose avec "$nb_pages" pour la dernière page.

par StarT » 06 nov. 2005, 22:35

C'est bon Truc, j'ai résolu le problème, je veux améliorer ma pagination en ajoutant un << pour réccuperer la toute 1ère page et un >> pour la toute dernière page ! Merci beaucoup pour tout !

par StarT » 06 nov. 2005, 20:13

ça me donne toujours le meme résultat <<N°depage>>

voilàale code :
if($nb_pages > 0) 
{ 
    /* On définit une variable qui contiendra les données de navigation */ 
    $barre_nav = ""; 
    /* Nous avons au moins une page : avons nous besoin d'une barre de navigation ? */ 
    if($nb_pages > 1) 
    { 
        /** 
        Nous avons plusieurs pages: nous allons afficher successivement les liens vers 
        les pages précédentes s'il y en a, la page en cours et les liens vers les pages 
        suivantes. Nous aurons une barre sous la forme : 1 | 2 | 3 etc.. en liens clicables 
        sauf pour la page en cours dont nous mettrons le chiffre en gras 
         */ 
        if($page_en_cours > 0) 
        { 
		$page_prec=$page_en_cours-1 
    $lien = $url . $page_prec.'&pays_combo=' .$pays_combo 
                .'&sub_ville=' .$sub_ville 
                .'&sub_type_achat=' .$sub_type_achat 
                .'&sub_type_logement=' .$sub_type_logement 
                .'&meublier=' .$meublier 
                .'&radionchk=' .$radionchk 
                .'&radionchk1=' .$radionchk1; 
    $barre_nav .='<a href="'. $lien .'" title="page '. ($page_prec+1) .'"><<</a>';
     
           $page_prec=$page_en_cours-10; // on prend la page en cours -2 pour avoir la page courant en milieu de lien, donc 2 liens avant et 2 apres 

$deb=($page_prec>=0) ? $page_prec : 0; // test pour savoir si on se trouve sur une page inferieure a 3 pour ne pas afficher des lien négatifs 

for($i = $deb; $i < $page_en_cours; $i++)// on début donc a page-2 

            { 
			
                $p = $i + 1;                 
                $lien = $url . $i.'&pays_combo=' .$pays_combo 
                .'&sub_ville=' .$sub_ville 
                .'&sub_type_achat=' .$sub_type_achat 
                .'&sub_type_logement=' .$sub_type_logement 
                .'&meublier=' .$meublier 
                .'&radionchk=' .$radionchk
				.'&radionchk1=' .$radionchk1;  
                 
                $barre_nav .= '<a href="'. $lien .'" title="page '. $p .'">'. $p .'</a> | ';
        } 
		}
        /** 
        On affiche la page en cours : notez le (+ 1) : pour les calculs, nous partons d'une 
        page 0 mais pour l'internaute, il est préférable de commencer à la page 1, donc on incrémente 
         */ 
        $barre_nav .= "<strong>". $page_affichee ."</strong>"; 
        /* Enfin on affiche (s'il y a lieu) les liens vers les pages suivantes */ 
        if(($page_affichee) < $nb_pages) 
        { 
            /* Il reste encore d'autres pages à afficher */ 
            $nb_suivantes = $nb_pages - ($page_affichee); 
             $page_suiv=$page_en_cours+10; 

$fin=($page_suiv <= $nb_pages) ? $page_suiv : $nb_pages; 


for($j = ($page_affichee); $j < $fin; $j++)  

            { 
                $p = $j + 1; 
				$lien = $url . $j.'&pays_combo=' .$pays_combo 
                .'&sub_ville=' .$sub_ville 
                .'&sub_type_achat=' .$sub_type_achat 
                .'&sub_type_logement=' .$sub_type_logement 
                .'&meublier=' .$meublier 
                .'&radionchk=' .$radionchk
				.'&radionchk1=' .$radionchk1;  
                $barre_nav .= " | <a href=\"". $lien."\" title=\"page ". $p ."\">". $p ."</a>";  
            } 

$page_suiv=$page_en_cours+1; 
$lien = $url. $page_suiv. '&pays_combo=' .$pays_combo 
                .'&sub_ville=' .$sub_ville 
                .'&sub_type_achat=' .$sub_type_achat 
                .'&sub_type_logement=' .$sub_type_logement 
                .'&meublier=' .$meublier 
                .'&radionchk=' .$radionchk 
                .'&radionchk1=' .$radionchk1; 
    $barre_nav .='<a href="'. $lien .'" title="page '. ($page_suiv+1) .'"> Suivante </a>'; 
            } 
        } 
         
        /* On peut définir en plus la situation dans une autre variable à afficher ailleurs */ 
        $page_affichee = "Page ". $page_affichee ." sur un total de ". $nb_pages ." pages."; 
    } 
    else 
    { 
        /* Nous n'avons qu'une seule page, on peut se contenter d'afficher juste page 1/1 */ 
        $barre_nav .= "page 1/1"; 
    } 

par Truc » 06 nov. 2005, 19:42

ah oui mais il ne faut pas enlever les boucles ... le code pour suivant et précédent est a ajouter avant la 1er boucle pour le lien précédent et apres la 2eme boucle pour le lien suivant

par StarT » 06 nov. 2005, 19:27

j'ai mis ton code Truc voilà le résultat qu'il me donne dans la partie pagination :
Pages: Précédente 3 Suivante
je veux avoir ce résultat :
Pages: Précédente 2 | 3 |4 | 5 |Suivante
Voilà mon code :
   if($page_en_cours > 0 ) 
{ 
$page_prec=$page_en_cours-1; 
    $lien = $url. $page_prec. '&pays_combo=' .$pays_combo 
                .'&sub_ville=' .$sub_ville 
                .'&sub_type_achat=' .$sub_type_achat 
                .'&sub_type_logement=' .$sub_type_logement 
                .'&meublier=' .$meublier 
                .'&radionchk=' .$radionchk 
                .'&radionchk1=' .$radionchk1; 
    $barre_nav .='<a href="'. $lien .'" title="page '. ($page_prec+1) .'"> Précédente </a>'; 
        } 
		
       
        $barre_nav .= "<strong>". $page_affichee ."</strong>"; 
        
        if(($page_affichee) < $nb_pages) 
        { 
         
            //$nb_suivantes = $nb_pages - ($page_affichee); 
           $page_suiv=$page_en_cours+1; 

 $lien = $url. $page_suiv. '&pays_combo=' .$pays_combo 
                .'&sub_ville=' .$sub_ville 
                .'&sub_type_achat=' .$sub_type_achat 
                .'&sub_type_logement=' .$sub_type_logement 
                .'&meublier=' .$meublier 
                .'&radionchk=' .$radionchk 
                .'&radionchk1=' .$radionchk1; 
    $barre_nav .='<a href="'. $lien .'" title="page '. ($page_suiv+1) .'"> Suivante </a>'; 
            } 
Merci ! :wink:

par StarT » 06 nov. 2005, 18:59

Merci Truc je vais essayer ! :wink:

par Truc » 06 nov. 2005, 03:18

oui oui je sais je l'avais dis que ferai en étapes, puisque l'affichage par 5 marche il faut maintenant ajouter les liens précédent et suivant.

Donc avant la 1ere boucle il faut concatèner le lien précédent et apres la 2eme boucle il faut concatèner le lien suivant.

un truc du genre:
if($page_en_cours > 0 )
{
$page_prec=$page_en_cours-1
	$lien = $url . $page_prec.'&pays_combo=' .$pays_combo
                .'&sub_ville=' .$sub_ville
                .'&sub_type_achat=' .$sub_type_achat
                .'&sub_type_logement=' .$sub_type_logement
                .'&meublier=' .$meublier
                .'&radionchk=' .$radionchk
                .'&radionchk1=' .$radionchk1;
	$barre_nav .='<a href="'. $lien .'" target=milieu title="page '. ($page_prec+1) .'"><<</a>'; 
le lien precédent n'existera que si on se trouve sur une page autre que 1.

sur le meme principe le lien suivant avec:
if($page_en_cours <  $nb_pages)
le reste je te laisse faire :wink:

par StarT » 06 nov. 2005, 02:41

ça marche bien mais j'ai pas >> pour passer au suivant sans passer par le N° de la page et de meme pour précedent :wink:

par Truc » 06 nov. 2005, 02:26

mais on ne va pas le trouver mais le faire, c'est plus mieux :lol:

c'est pas tellment difficile, en gros suffit de changer les bornes de l'affichage des lien, donc des boucles for().

on va se baser sur un lien du type
<< 1 | 2 | 3 | 4 | 5 >>
Pour commencer il faut d'abor afficher 5 par 5, la 1ere boucle ressemblerai donc à:
for($i = 0; $i < $page_en_cours; $i++)
:arrow:
$page_prec=$page_en_cours-2; // on prend la page en cours -2 pour avoir la page courant en milieu de lien, donc 2 liens avant et 2 apres

$deb=($page_prec>=0) ? $page_prec : 0; // test pour savoir si on se trouve sur une page inferieure a 3 pour ne pas afficher des lien négatifs

for($i = $deb; $i < $page_en_cours; $i++)// on début donc a page-2
{
//ici le meme code
..
}
et l'autre boucle:

$page_suiv=$page_en_cours+2;

$fin=($page_suiv <= $nb_pages) ? $page_suiv : $nb_pages;
for($j = ($page_affichee); $j < $fin; $j++)
et ça devrai deja ressembler a ce qu'on cherche. (j'ai pas testé en meme temps, faut etre indulgente :lol: )

par StarT » 06 nov. 2005, 02:00

Oui c'est une solution ! donc j'ai aucune chance d'utiliser le iframe avec pagination !

Merci beaucoup Truc, tu pourra me dire ou je pourrai trouver le traitement de pagination comme celle de google Merci d'avance :wink:

par Truc » 06 nov. 2005, 01:13

Salut :wink:
une fois que le nombre de pages affiché sur la page de résultat depasse 5 ça me deforme la page ce qui m'oblige d'utiliser un iframe avec un scrollbar !
non ce n'est pas grave, vaut mieux rester sur cette idée, ce que tu peut faire c'est de revenir a la ligne apres l'affichage 5 pages
tu aurai donc quelque chose comme ça:
1 | 2 | 3 | 4 | 5
6 | 7 | 8 | 9 | 10
mais encore mieux serai d'avoir une pagination genre google, tu affiche le lien pour 5 pages, un lien précédent (<<) et un lien suivant (>>):
<< 1 | 2 | 3 | 4 | 5 >>
ça évitera en plus d'utiliser des "iframe", tu pense que ça arrangerai ton probleme avec un affichage sous cette forme des liens ?

par StarT » 06 nov. 2005, 00:09

Tu préfèrerais pas les include? Personnellement, pour les iframe, je connais pas vraiment la solution parce que je les utilise jamais. Peu importe, les includes sont la plupart du temps les heureuses gagnantes des oscar :lol: et tu n'aurais jamais ce genre de problème. Si ce n'est que tu n'est pas équipé pour, installe easyphp, ça prend quelques secondes. Et faire une include, même si tu connais pas le php, c'est simple:
<?
   include "fichier.html";
?>
j'ai faisais avant le include <? include ("moteurRech.php"); ?> et ça marchait très bien mais une fois que le nombre de pages affiché sur la page de résultat depasse 5 ça me deforme la page ce qui m'oblige d'utiliser un iframe avec un scrollbar !

par StarT » 05 nov. 2005, 01:28

quelqu'un pourra m'aider ?
j'arrive toujours pas à regler mon problème, avec les layers ça se deforme selon la résolution de l'écran, sur mon poste ça se passe Nickel sur d'autres pas du tout ! pour les iframe je sais pas comment je dois faire ?!!!!
j'ai fait un essai, le iframe contient le resultat de ma recherche avec pagination mais une fois que je passe sur une autre page de résultats ça me donne la page principale (banniere + menu + l'iframe ) dans la partie de l'iframe au lieu de me donner juste la partie résultat avec pagination, j'espère que j'ai bien expliqué mon problème cette fois ci ! Merci d'avance

par Invité » 02 nov. 2005, 15:33

:?