Probléme défilement de page

cs_LibreMax Messages postés 12 Date d'inscription jeudi 3 juin 2004 Statut Membre Dernière intervention 16 août 2005 - 11 août 2005 à 12:14
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 - 11 août 2005 à 16:50
Salut,



Je suis passé d'easyphp 1.7 (apache 1.3.27 php 4.3.3) a un serveur
apche sous debian (apache 2.0.54 php 4.3.10.15); Mon problé est que le
défilement des pages de mon annuaire ne fonctionne plus.



Merci de votre aide:



<html>



<script language= "JavaScript" type="text/JavaScript">

<!--

function MM_reloadPage(init) { //reloads the window if Nav4 resized

if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {

document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}

else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();

}

MM_reloadPage(true);

//-->

</script><style type="text/css">

<!--



body {

background-color: #9595FF;

}

-->

</style>



<head>

<title> BIENVENUE SUR L'ANNUAIRE INTERNE DE LA MAIRIE OLIVET</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<meta http-equiv="Content-Language" content="fr">

<script language="JavaScript">



navvers = navigator.appVersion.substring(0,1);

if (navvers > 3)

navok = true;

else

navok = false;



today = new Date;

jour = today.getDay();

numero = today.getDate();

if (numero<10)

numero = "0"+numero;

mois = today.getMonth();

if (navok)

annee = today.getFullYear();

else

annee = today.getYear();

TabJour = new Array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");

TabMois = new
Array("janvier","février","mars","avril","mai","juin","juillet","aout","septembre","octobre","novembre","décembre");

messageDate = TabJour[jour] + " " + numero + " " + TabMois[mois] + " " + annee;



</SCRIPT>

</head>

<script language="JavaScript">



document.write(messageDate);



</SCRIPT>



&nbsp;


&nbsp;


&nbsp;







<SCRIPT LANGUAGE=JavaScript>



ejs_box2_message = new Array;

ejs_box2_message[0] = 'ANNUAIRE
INTERNE DE LA
MAIRIE
';



ejs_box2_actual = 0;

ejs_box2_html_flag = 0;



function ejs_box2_go()

{

if(document.getElementById)

{

ejs_box2_char = 1;

ejs_box2_affich(ejs_box2_actual)

ejs_box2_actual++;

if(ejs_box2_actual >= ejs_box2_message.length)

ejs_box2_actual = 0;

}

}



function ejs_box2_affich(lactual)

{

var pix = ejs_box2_message[lactual].charAt(ejs_box2_char);

if(pix == "<")

ejs_box2_html_flag = 1;

if(pix == ">")

ejs_box2_html_flag = 0;

var texte = ejs_box2_message[lactual].substring(0,ejs_box2_char);

document.getElementById("ejs_box2_box").innerHTML = texte;

if(ejs_box2_char < ejs_box2_message[lactual].length)

{

ejs_box2_char++;

if(ejs_box2_html_flag == 1)

ejs_box2_affich(lactual);

else

setTimeout("ejs_box2_affich("+lactual+")",50)

}

else

setTimeout("ejs_box2_go()",3000)

}



window.onload = ejs_box2_go;

</SCRIPT>

<!-- FIN DU SCRIPT -->


<?php

/// paramètres de connection à la base de données



// Serveur SQL

$host = 'localhost';

// Login SQL

$user = 'root';

// Mot de passe SQL

$password = '';

// Nom de la base de donnee

$database = 'Annuaire_Mairie';



//connection à la base de donnée



$mysql_link = mysql_connect($host, $user, $password);



// connection bdd + variable

mysql_selectdb($database) or die ('Erreur : '.mysql_error() );



$tous = mysql_query("SELECT * FROM annuaire");

$nb_tous = mysql_num_rows($tous);



//$path_parts = pathinfo($_SERVER['PHP_SELF']);

//$pge = $path_parts['Annuaire_Mairie'];



echo"Ce moteur vous permet de rechercher parmi les $nb_tous entrées
votre correspondant




";



if (isset($_POST['f_etou']) ) $etou =$_POST['f_etou'];

else $f_etou= "OR";



//s'il y a eu saisie :

if ( !isset($f_nom)) $f_nom="";

if ( !isset($fonction)) $fonction="";



//if ( isset($_POST['f_nom']) )

$f_nom=$_POST['f_nom'];

//if ( isset($_POST['fonction']) )

$fonction=$_POST['fonction'];





if( ($f_nom)!="" or ($fonction!="") )





{

//traitement des données du formulaire

//construction du critère de sélection suivant les entrées fournies

if (!isset($critere)) $critere="";

if ($f_nom!=""){

$noms = split(" ",$f_nom);

$nb_noms = count($noms);

$critere="
Num_Annuaire like '%$noms[0]%' OR Nom like '%$noms[0]%' OR Prenom like
'%$noms[0]%' ";

$z=1;

while($z<$nb_noms){

$critere.=" OR
Nom like '%$noms[$z]%' OR Num_Annuaire like '%$noms[$z]%' OR Prenom
like '%$noms[$z]%'";

$z++;}

}

if ($fonction!="")

{

if ($critere=="") $critere.=" Direction like '$fonction'";

else{$criteretemp=$critere;

$critere="(".$criteretemp.")";

$critere.=" $etou (Direction like '$fonction')"; }

}



// NOMBRE D'ENREGISTREMENTS REPONDANT A LA REQUETE

$requete = mysql_query("select * from annuaire where $critere");

echo " select * from Annuaire where $critere
" ;



$nbT=mysql_num_rows($requete);



// DEFINITION DU MESSAGE A AFFICHER S'IL NY A PAS DE RESULTATS

if ($nbT==0) {echo "
Désolé, aucune fiche ne

correspond à tous les critères indiqués.
Vérifiez
l'orthographe, diminuez le nombre de critères et relancez la
recherche.
";}



else {// AFFICHAGE DES RESULTATS PAGE PAR PAGE

if (!isset($s)) $s="";

if ($nbT>1) {$s= "s";} // utilisé pour éviter une faute d'orthographe dans la ligne en dessous...

echo " Il y a $nbT réponse$s à votre requête
";



// on refait la requete mais en précisant les fiches à renvoyer

$limit =5; // vous pouvez faire varier ce nombre, voire même l'intégrer
dans votre formulaire pour que ce soient vos visiteurs qui choisissent

if (!isset($pge)) $pge= 0;



$debut=$pge*$limit;



echo ''.\"\n\";

// première ligne on affiche les titres prénom et surnom dans 2 colonnes

echo '----
';

echo '<center>';

echo 'N° poste, ';

echo \"\n\";

echo 'Nom, ';

echo 'Prenom, ';

echo 'Direction / Sous Direction
, ';

echo 'Service, ';

echo 'N° Portable
, ';

echo ''.\"\n\".\"\n\";

$requete2 = mysql_query(\"select * from annuaire where $critere limit $debut, $limit\");

while($row = mysql_fetch_array($requete2)){

$numAnnuaire=$row['Num_Annuaire'];

$nom=stripslashes($row['Nom']);

$prenom=$row['Prenom'];

$direction=$row['Direction'];

$sousDirection=$row['SousDirection'];

$service=$row['Service'];

$portable=$row['Tel_Port'];

if($sousDirection==$direction)$sousDirection=\"\"; //
pour éviter de répéter la même chose !!

echo '----
';

echo ''.$row['Num_Annuaire'].', ';

echo ''.$row['Nom'].', ';

echo ''.$row['Prenom'].', ';

echo ''.$row['Direction'].''.$sousDirection.', ';

//echo ''.$row['SousDirection'].', ';

echo ''.$row['Service'].', ';

echo ''.$row['Tel_Port'].', ';

echo ''.\"\n\";

}// fin du while (tant qu'il y a une ligne dans le tableau de résultats renvoyé par $requete2)

echo '
'."\n";

echo "
";

echo "
";

$nbpages=ceil($nbT/$limit); // ceil = plafond : pour arrondir à la valeur supérieure

// affichage de la première page si nécessaire (si nb total de pages supérieur à 5)



if($nbpages>>3 and $pge>2){

echo " Début &nbsp;";

}

// AFFICHAGE DU LIEN PRECEDENT SI BESOIN EST (LA PREMIERE PAGE EST 0)

if ($pge>0){

$precedent =$pge-1;

echo "

&lt;&nbsp;";

}

// AFFICHAGE DES NUMEROS DE PAGE

$i= 0;$j=1;

if($nbT>$limit){

while($i<($nbpages)){ // pour limiter l'affichage du nombre de pages restantes

if ($i>$pge-3 and $i<$pge+3){

if($i!=$pge)

{echo "$j&nbsp;";}

else {echo
" $j &nbsp;";}//met en gras le N° de la page en
cours

}//fin du if i>pge....

$i++;$j++;}//fin du while i<nbpages

} //fin du if nbT>limit



// AFFICHAGE DU LIEN SUIVANT SI BESOIN EST

if($pge<$nbpages-1){

$suivant =$pge+1;

echo "&gt;&nbsp;";

}

// affichage de la dernière page si nécessaire

if($nbpages>3 and $pge<$nbpages-3){

$fin=$nbpages-1;

echo "fin
($nbpages)";

}



}// fin du else affichage des résultats.

}// fin du si il y a eu saisie

else { // s'il n'y a pas eu saisie

echo "
indiquez vos critères de choix
";}

?>








</html>





Merci

LibreMax

6 réponses

davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
11 août 2005 à 14:01
Cette réponse n'engage que moi mais...

ton code est bcp trop long pour qu'on le debug.. essaie de cerner un
peu le pb..enleve des portions de code et regarde si ça foire
tjrs, etc...

parce que là.... dur dur ;)



bon courage !!

-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
0
cs_LibreMax Messages postés 12 Date d'inscription jeudi 3 juin 2004 Statut Membre Dernière intervention 16 août 2005
11 août 2005 à 14:53
je pense que mon probléme doit venir des :

echo "&gt;&nbsp;";

LibreMax
0
davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
11 août 2005 à 14:59
ben supprime le..et regarde si ça marche..

-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
11 août 2005 à 15:05
Dorénavant, il faut utiser $_GET['var'] pour accéder à une variable 'var' transmise par l'url, donc dans ton cas remplace

if (!isset($pge)) $pge=0;

par

if (!isset($_GET['pge'])) $pge=0;
else $pge=$_GET['pge'];

Tu devras faire pareil pour toutes les variables que tu passes par l'url. Pour celles que tu passes par un formulaire, tu peux y accéder par $_POST['var'].

Arn;o)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_LibreMax Messages postés 12 Date d'inscription jeudi 3 juin 2004 Statut Membre Dernière intervention 16 août 2005
11 août 2005 à 16:31
echo "&gt;&nbsp;";

J'ai mis ton exemple dans un <href mais cela ne semble pas fonctionner.
Peut-tu me faire un exemple.

Merci
LibreMax
0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
11 août 2005 à 16:50
Une autre nouveauté est qu'il faut initialiser les variables avant de les appeler (ou alors tester si elles existent).
C'est-à-dire, avant d'écrire

if (...) {
$var='tty';
}
echo $var;

tu peux faire :
- soit if (!empty($var)) ou aussi if (isset($var)) :

if (...) {
$var='tty';
}
if (!empty($var)) {
echo $var;
}

- soit affecter systématiquement une valeur : $var='';
$var='';
if (...) {
$var='tty';
}
echo $var;

Donc, dans ton cas, avant d'utiliser $_GET, il faut vérifier que la variable existe. Tu peux alors soit utiliser des variables locales (comme dans ma 1e réponse) :

if (!isset($_GET['pge'])) $pge=0;
else $pge=$_GET['pge'];
echo '[index3.php?pge='.$pge' lien]';
//idem pour chq var

soit en construisant la chaine des paramètres petit à petit :

$lien='[index3.php?';
if (!empty($_GET['suivant']))
$lien.='pge='.$_GET['suivant'].'&';
if (!empty($_GET['f_nom']))
$lien.='f_nom='.$_GET['f_nom'].'&';
if (!empty($_GET['fonction']))
$lien.='fonction='.$_GET['fonction'].'&';
if (!empty($_GET['f_etou']))
$lien.='f_etou='.$_GET['f_etou'].'&';
echo substr($lien,0,strlen($lien)-1).' &gt;]';

Arn;o)
0
Rejoignez-nous