Page 1 sur 1
formulaire et affichage de lien
Posté : 10 mai 2005, 21:08
par donny
Bonsoir,
en faite j ai un formulaire,que j ai realiser grave au personne du forum donc le probleme que j ai est que j ai des lien pour naviguer entre mes enregistrement, le truc est que je veux qu il est toujours afficher en bas de la page debut,precedent,suivant,fin donc je les ai mis dans un tableau mais des que je clique sur le lien suivant ou autre bin il n apparaisse plus dans le tableau mais en desordre ???
<input type="text" name="t1" value="<?php echo $row[0]; ?>"><br/>
<input type="text" name="t2" value="<?php echo $row[1]; ?>"><br/>
<table><tr><td><?php $deb=$max-$max;
echo "<a href=\"pagia4.php?max=" . $max . "&id=" . $deb . "\">DEBUT</a>"; ?>
</td>
//if($precedent != -1)
<td><?php echo "<a href=\"pagia4.php?max=" . $max . "&id=" . $precedent . "\">PRECEDENT</a>";?></td>
//if($suivant <= $max)
<td><?php echo "<a href=\"pagia4.php?max=" . $max . "&id=" . $suivant . "\">SUIVANT</a>";?></td>
<td><?php echo "<a href=\"pagia4.php?max=" . $max . "&id=" . $max . "\">FIN</a>";?></td>
</tr>
</table>
Posté : 11 mai 2005, 15:57
par goeb
salut,
c'est un peu confus...
ils n'apparaissent plus ou bien ils apparaissent en désordre ?
par ailleurs, un truc manque : les variables $precedent et $suivant ne sont jamais définies.
il faudrait dire un truc du genre :
Posté : 11 mai 2005, 16:13
par donny
en faite il apparaisse mais en desordre et plus dans les cellule du tableau
voila le code en entier
<?php
include("connexion.inc.php");
if(!isset($_GET['max'])){
$result = pg_query("SELECT * FROM personne");
$max = pg_num_rows($result) - 1;//la numérotaion commence à 0
$suivant = 1;
$precedent = -1;
$id = 0;
}
else {
$max = intval($_GET['max']);
$id = intval($_GET['id']);
$suivant = $id + 1;
$precedent = $id - 1;
}
//$sql = "SELECT * FROM personne LIMIT " . $id . ", 1";
//$sql = "SELECT * FROM personne offset " . $id . ", 1";
$sql = "SELECT * FROM personne LIMIT 1 OFFSET " . $id;
$result = pg_query($sql) or die('erreur');
//$result = pg_query($sql) or die('erreur');
$row = pg_fetch_row($result);
//print_r($row);
?>
<input type="text" name="t1" value="<?php echo $row[0]; ?>"><br/>
<input type="text" name="t2" value="<?php echo $row[1]; ?>"><br/>
<table><tr><td><?php $deb=$max-$max;
echo "<a href=\"pagia4.php?max=" . $max . "&id=" . $deb . "\">DEBUT</a>"; ?>
</td>
//if($precedent != -1)
<td><?php echo "<a href=\"pagia4.php?max=" . $max . "&id=" . $precedent . "\">PRECEDENT</a>";?></td>
//if($suivant <= $max)
<td><?php echo "<a href=\"pagia4.php?max=" . $max . "&id=" . $suivant . "\">SUIVANT</a>";?></td>
<td><?php echo "<a href=\"pagia4.php?max=" . $max . "&id=" . $max . "\">FIN</a>";?></td>
</tr>
</table>
Posté : 11 mai 2005, 17:04
par daoud
Salut donny,
voici le code que je t'ai passé complété par les liens fin et début.
<?php
$ressource = mysql_connect("localhost", "root", "");
mysql_select_db("test");
if(!isset($_GET['max'])){
$result = mysql_query("SELECT * FROM toto");
$max = mysql_num_rows($result) - 1;//la numérotaion commence à 0
$suivant = 1;
$precedent = -1;
$id = 0;
}
else {
$max = intval($_GET['max']);
$id = intval($_GET['id']);
$suivant = $id + 1;
$precedent = $id - 1;
}
$sql = "SELECT * FROM toto LIMIT " . $id . ", 1";
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_row($result);
//print_r($row);
?>
<input type="text" name="" value="<?php echo $row[0]; ?>"><br/>
<input type="text" name="t2" value="<?php echo $row[1]; ?>"><br/>
<?php
if($suivant <= $max)
echo "<a href=\"index.php?max=" . $max . "&essai=t t&id=" . $suivant . "\">SUIVANT</a><br/>";
if($precedent != -1)
echo "<a href=\"index.php?max=" . $max . "&id=" . $precedent . "\">PRECEDENT</a><br/>";
echo "<a href=\"index.php?max=" . $max . "&id=0\">DEBUT</a><br/>";
echo "<a href=\"index.php?max=" . $max . "&id=" . $max . "\">FIN</a>";
?>
=> pour début tu peux mettre 0.
Sinon, dans ce code je ne propose pas l'accès au bouton suivant s'il n'y a pas d'enregistrement après, idem pour précédent s'il n'y a d'enregistrement avant, donc ...
daoud
Posté : 11 mai 2005, 18:29
par donny
je sais pas si t avais remarqué

mais je suppose, je les avais rajouter les liens debut et fin et moi ce que je voulais c est que les liens debut,fin,precedent,suivant soit toujours afficher sur toute les pages
Posté : 11 mai 2005, 18:45
par daoud
Je pense que les liens devraient apparaitre.
Il faut cependant maintenant que tu fasses attention aux conditions, car sinon tu va passer en paramètre des 'id' hors limite.
Donc je ferais quelque chose comme :
$suivant = ($id + 1 > $max) ? $max : $id + 1;
$precedent = ($id - 1 < 0) ? 0 : $id - 1;
cela devrait suffire (chez moi ça roule)
a
daoud
Posté : 11 mai 2005, 19:16
par donny
en faite voila tu vois quand je lance mon formulaire il se presente ainsi
[img]C:\Documents%20and%20Settings\FRANKY\Bureau\Nouveau%20dossier%20(5)\1.gif[/img]
donc les liens sont bien aligné
et quand je clique sur suivant,les liens se melange
[img]C:\Documents%20and%20Settings\FRANKY\Bureau\Nouveau%20dossier%20(5)\2.gif[/img]
et puis quand je clique sur precedent par exemple alors,tout se melange et ce lien disparait
[img]C:\Documents%20and%20Settings\FRANKY\Bureau\Nouveau%20dossier%20(5)\3.gif[/img]
et moi ce que je voulais savoir c est si il etait possible que ses liens soit toujours afficher en bas du formulaire et ne disparaisse ,et reste bien aligné comme dans la premiere image
Posté : 11 mai 2005, 19:18
par donny
je voulais mettre les image pour que tu vois mais apparament sa marche pas
Posté : 11 mai 2005, 19:27
par daoud
En ce qui concerne les images il faudrait qu'elles soient accessibles depuis internet parce que là elles sont sur ton dur.
Sinon, moi j'ai essayé ça chez moi et ça roule :
<?php
$ressource = mysql_connect("localhost", "root", "");
mysql_select_db("test");
if(!isset($_GET['max'])){
$result = mysql_query("SELECT * FROM toto");
$max = mysql_num_rows($result) - 1;//la numérotaion commence à 0
$suivant = 1;
$precedent = 0;//ICI TU METS 0 ET PLUS -1
$id = 0;
}
else {
$max = intval($_GET['max']);
$id = intval($_GET['id']);
$suivant = ($id + 1 > $max) ? $max: $id + 1;
$precedent = ($id - 1 < 0) ? 0 : $id - 1;
}
$sql = "SELECT * FROM toto LIMIT " . $id . ", 1";
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_row($result);
//print_r($row);
?>
<input type="text" name="" value="<?php echo $row[0]; ?>"><br/>
<input type="text" name="t2" value="<?php echo $row[1]; ?>"><br/>
<table border="1">
<tr>
<?php
echo "<td><a href=\"index.php?max=" . $max . "&id=" . $suivant . "\">SUIVANT</a><br/></td>";
echo "<td><a href=\"index.php?max=" . $max . "&id=" . $precedent . "\">PRECEDENT</a><br/></td>";
echo "<td><a href=\"index.php?max=" . $max . "&id=0\">DEBUT</a><br/></td>";
echo "<td><a href=\"index.php?max=" . $max . "&id=" . $max . "\">FIN</a></td>";
?>
</tr>
bon courage
daoud
Posté : 11 mai 2005, 19:28
par donny
t as compris ce que je voulais faire , je sais pas si j ai bien expliquer ?
Posté : 11 mai 2005, 19:33
par daoud
Tu veux mettre 4 liens en bas de formulaire dans un tableau :
DEBUT - FIN - PRECEDENT - SUIVANT
et que ces liens s'affichent tout le temps.

daoud
Posté : 11 mai 2005, 19:39
par donny
exact ,excuse mais je suis con
si je te dit que j ai fait la meme erreur qu hier, j ai oublié de changer les liens dans les a href en faite les liens y pointait sur un autre formulaire et pas sur le formulaire de depart

a rester devant le pc toute la journée ,je deviens aveugle