Page 1 sur 3
formulaire access ?
Posté : 07 mai 2005, 12:42
par donny
Salut,
Est ce possible de faire un truc comme dans les formulaire je m explique sur les formulaire en bas on dispose de bouton (avec des petite fleche dessus) qui permette de passer a l enregistrement suivant,precedent,au dernier enregistrer, premier enregistrement tout en restant sur le meme formulaire .
On peut le faire ??
merci
Posté : 07 mai 2005, 12:44
par daoud
OUI

(faut quand même recharger les pages hein

)
Posté : 07 mai 2005, 12:49
par donny
Il faut utiliser du javascript ?
Posté : 07 mai 2005, 13:24
par daoud
En html c'est possible, pas besoin de javascript
daoud
Posté : 07 mai 2005, 13:26
par donny
deja j ai fait ce debut de code et il plante
<h3>Formulaire ville</h3>
<input type="text" name="idville"><br>
<input type="text" name="ville">
<?
include("connexion.inc.php");
$sql='select * from ville where=1";
$result=pg_query($sql);
while($list=pg_fetch_array($result)){
$idville=$list['id_ville'];
$ville=$list['ville'];
}
?>
il m affiche toujours cette erreur
Parse error: parse error in c:\documents and settings\franky\bureau\avion\formuville.php on line 14
Posté : 07 mai 2005, 13:30
par daoud
A l'affichage du code sur cette page tu pourrais déjà voir quelque chose, en effet tout est rouge à partir d'un moment...
$sql="select * from ville where=1";
daoud
Posté : 07 mai 2005, 13:44
par donny
j ai rectifier
et sa donne cela
exact merci
mais j ai modifier et apparament il ne reconnait pas la variable ville
<h3>Formulaire ville</h3>
<input type="text" name="idville"><br>
<input type="text" name="ville">
<?
include("connexion.inc.php");
$sql='select * from ville where id_ville=1';
$result=pg_query($sql);
while($list=pg_fetch_array($result)){
$idville=$list['id_ville'];
$ville=$list['ville'];
}
?>
Notice: Undefined index: ville in c:\documents and settings\franky\bureau\avion\formuville.php on line 15
pourtant je dois bien choisir la premiere ville de ma table pour l afficher des le debut
Posté : 07 mai 2005, 13:51
par daoud
Bon,
Cette erreur veut dire que tu n'as pas de champ 'ville' dans ta base, je me trompe ?
Ensuite je comprends pas trop ce que tu veux dire par
pourtant je dois bien choisir la premiere ville de ma table pour l afficher des le debut
j'ai bien une idée mais...
a+
daoud
Posté : 07 mai 2005, 14:34
par donny
exact c etait je suis bete
Mais le truc est que maintenant je n ai plus d erreur et pourtant mes deux champs sont vide ?
en faite comme j ai expliquer je faire une formulaire à la access et donc je suis obligé de choisir le premiere enregistrement de ma table ville pour l afficher dans les 2 champs de mon formulaire ?
Posté : 07 mai 2005, 18:11
par donny
J ai corriger sa affiche mais je vois vraiment pas comment acceder au autre ligne
<?
include("connexion.inc.php");
$sql='select * from ville where id_ville=1';
$result=pg_query($sql);
while($list=pg_fetch_array($result)){
$idville=$list['id_ville'];
$ville=$list['nom_ville'];
}
?>
<h3>Formulaire ville</h3>
<input type="text" name="idville" value="<? echo $idville; ?>"><br>
<input type="text" name="ville" value="<? echo $ville; ?>">
Posté : 07 mai 2005, 19:04
par daoud
Ta question est-elle bien : comment passer d'un enregistrement à un autre?
daoud
Posté : 07 mai 2005, 19:11
par donny
je sais pas si c est possible c est pour sa que je demande,
je vais essayer de reformuler
en faite je sais pas si tu vois comment son les formulaire access en bas du formulaire tu a des bouton qui te permette d acceder a l enregistrement suivant,precedent, au derniere enregistrement, au premier enregistrement
je sais pas si tu vois ce que je veux dire
Posté : 07 mai 2005, 19:38
par daoud
Ok,
l'idée (mais si d'autres en on faut le dire hein

) serait de faire un bouton (tu peux commencer par faire un lien) qui te redirige vers la même page et qui passe en paramètre l'id de la valeur actuelle, le type de mouvement demandé.
ex :
<?php
echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?type=suivant&id=" . $index . "\">SUIVANT</a>";
?>
même genre d'idée avec précédent. Il faut prendre garde à bien vérifier s'il y a une valeur possible et gérer ces cas.
Plutôt que de faire cela avec idVille tu peux utiliser un index. Au début il a pour valeur 0. Si tu veux la page suivante tu l'incrémentes. ex :
$result=pg_query($sql);
$nb = pg_num_rows($result);// nombre de lignes récupérées
if(!isset($_POST['id'])
$index = 0;
else {
$index = $_POST['id'];
$type = $_POST['type'];
switch (type){
case "suivant" :
$index = ($index == $nb) ? $index : $index++;
break;
case "precedent" :
$index = ($index == 0) ? 0 : $index--;
break;
}
}
$i = 0; //compteur
while($list=pg_fetch_array($result) && $index >= $i){
if($index == $i){
$idville=$list['id_ville'];
$ville=$list['nom_ville'];
}
$i++;
}
Bon, c'est pas facile d'écrire ça comme ça, sans test, j'espère ne pas avoir fait d'erreurs

a+
daoud
Posté : 07 mai 2005, 21:16
par daoud
Tu peux aussi utiliser la fonctionalité "limit" en sql...
daoud
Posté : 07 mai 2005, 21:26
par daoud
Bon et après réflexion, tu pourrais faire plus simple, sans utiliser de paramètre type :
$result=pg_query($sql);
$nb = pg_num_rows($result);// nombre de lignes récupérées
if(!isset($_GET['id'])// faut mettre get ici et pas post :oops:
$index = 0;
else {
$index = $_POST['id'];
$suivant= ($index == $nb) ? $index : $index++;
$precedent= ($index == 0) ? 0 : $index--;
}
}
$i = 0; //compteur
while($list=pg_fetch_array($result) && $index >= $i){
if($index == $i){
$idville=$list['id_ville'];
$ville=$list['nom_ville'];
}
$i++;
}
et dans tes boutons pour id tu fais "id=" . $precedent, et idem pour suivant, c'est plus simple
voilou
daoud