Page 1 sur 2
submit en restant sur la méme page
Posté : 29 déc. 2009, 18:50
par dadon
salut tout le monde. en fait j'ai créé un formulaire qui importe des données depuis ma base de données et les affiche par page; le nombre de pages = au nombre d'enregistrements. si je me trouve sur la page 4 parexple et que je clique sur le bouton submit du formulaire il me retourne a la page 1 or je veux rester sur la page 4....Si quelqu'un peut me donner un coup de main please!!!
Re: submit en restant sur la méme page
Posté : 30 déc. 2009, 10:04
par macgawel
Bonjour.
Là comme ça, c'est un peu difficile de se prononcer.
Sans sortir la boule de cristal, je te propose donc quelques pistes :
- Passer en paramètre le numéro de page (par un champ caché, par exemple).
Il suffit ensuite de l'utiliser au retour...
- Utiliser de l'AJAX : le bouton de validation envoie une requête pour valider le formulaire sans recharger la page en cours.
Attention dans ce cas, à penser aux utilisateurs qui n'ont pas JS activé...
Re: submit en restant sur la méme page
Posté : 30 déc. 2009, 10:30
par Aureusms
Comment accèdes-tu à tes pages via l'URL (comme cela
http://monsite.com/index.php?page=4).
Si oui, tu peux changer dans ton formulaire la balise action ce qui te donnera (à vérifier) :
<form action="http://monsite.com/index.php?page=4" method="post ou get a toi de choisir">
Si tu n'utilise pas les url pour accéder à ta page, utilises dans ta page qui est la cible de ton formulaire la fonction header.
De ce faites tu feras :
<?php
if ($_POST["page_formulaire"] == "page_4")
{
header ("Location: mapage4.php");
exit();
}
?>
et dans ton formulaire tu places un champ caché (caché pour l'utilisateur) mais pas invisible
<input type="hidden" name="page_formulaire" value="page_4" />
Edit : rectificatifs
Re: submit en restant sur la méme page
Posté : 30 déc. 2009, 10:58
par dadon
bonjour! merci de vos réponses mais il ya une variable $numéropage qui tourne en boucle. étant donné qu'il ya beaucoup de page je ne peux pas à chaque fois indiquer le numéro de page. je vous propose de regarder mon code:
<?php
include('connections/link.php');
mysql_select_db($base, $id_connect);
$elmtpage=1;
$req_total=mysql_query('SELECT COUNT(*) AS total FROM personne');
$rep_total=mysql_fetch_assoc($req_total);
$total=$rep_total['total'];
$elmtpage=ceil($total/$elmtpage);
if(isset($_GET['page']))
{
$pagecourante=intval($_GET['page']);
if($pagecourante>$nombreDePages)
{
$pagecourante=$nombreDePages;
}
}
else
{
$pagecourante=1;
}
$premiereEntree=($pagecourante-1)*$elmtpage;
$retour_page=mysql_query('SELECT * FROM personne ORDER BY num LIMIT '.$premiereEntree.', '.$emltpage.'');
while($donnees_page=mysql_fetch_assoc($retour_page))
{
?>
<form name="pers" action="personne.php"" method="POST">
<table height="398" border="10%" align="center">
<caption><h1>Fiche de personne</h1></caption>
<tr align="center">
<th>numero</th>
<td><input type="text" name="num" value="<?php echo(''.$donnees_page['num'].'') ;?>"></td>
</tr>
<tr align="center">
<th>nom</th>
<td><input type="text" name="nom" value="<?php echo(''.$donnees_page['nom'].'') ;?>"></td>
</tr>
<tr align="center">
<th>prenoms</th>
<td><input type="text" name="prenoms" value="<?php echo(''.$donnees_page['prenoms'].'') ;?>"></td>
</tr>
<tr align="center">
<th>date naiss</th>
<td><input type="text" name="datenaiss" value="<?php echo(''.$donnees_page['datenaiss'].'') ;?>"></td>
</tr>
<tr align="center">
<th>sexe</th>
<td><input type="text" name="sexe" value="<?php echo(''.$donnees_page['sexe'].'') ;?>"></td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" value="valider"></td>
</tr>
</table>
</form><?
}
echo '<p align="center">Page : ';
for($i=1; $i<=$nombreDePages; $i++)
{
if($i==$pagecourante)
{
echo ' [ '.$i.' ] ';
}
else
{
echo ' <a href="personne.php?page='.$i.'">'.$i.'</a> ';
}
}
Ce code marche bien sauf si je valide par le bouton submit il me retourne à la 1ère page............Merci de votre contribution
Re: submit en restant sur la méme page
Posté : 30 déc. 2009, 11:04
par Aureusms
Avant de te répondre (et avant que tu te fasses gronder par les modos), utilises les outils pour dire qu'il s'agit de PHP ou HTML, ... ce sera plus clair pour nous de lire ton code
Re: submit en restant sur la méme page
Posté : 30 déc. 2009, 11:07
par Aureusms
Au passage tu as un formulaire sur chaque page ? Si oui c'est débile...
Re: submit en restant sur la méme page
Posté : 30 déc. 2009, 11:16
par dadon
effectivement j'avais fait une erreur au moment de la copie....dsolé...sisi j'ai chaque page un formulaire.....est ce que il ya une autre possibilité?
Re: submit en restant sur la méme page
Posté : 30 déc. 2009, 11:38
par dadon
le probléme en est que je dois faire des traitements formulaire par formulaire(fiche par fiche).....Mais aussi s'il ya une possibilité de rester sur une méme page de type formulaire avec des "input type= text" et d'importer depuis la base de données les infos de la fiche et un bouton suivant qui assure la navigation des infos?????? je serais vraiment partant....
Re: submit en restant sur la méme page
Posté : 30 déc. 2009, 11:49
par Aureusms
Hmm c'est pas très propre comme solution mais c'est un début...
Tu peux pointer vers une seule page qui traite le formulaire et qui ensuite te redirige vers la page de ton choix via header. De ce fait tu n'auras q"un seul formuliare à traiter, à protéger , à injecter. Ensuite les reste c'est que de l'affichage. Tu peux aussi utiliser hidden des champs input
Si on reprend ton code :
Au passage :
$req_total=mysql_query('SELECT COUNT(*) AS total FROM personne');
$rep_total=mysql_fetch_assoc($req_total);
$total=$rep_total['total']; //tu es sûr que cela marche çà ?
Ton code :
<?php
include('connections/link.php');
mysql_select_db($base, $id_connect);
$elmtpage=1;
$req_total=mysql_query('SELECT COUNT(*) AS total FROM personne');
$rep_total=mysql_fetch_assoc($req_total);
$total=$rep_total['total']; //tu es sûr que cela marche çà ?
$elmtpage=ceil($total/$elmtpage);
if(isset($_GET['page']) && !isset($_POST["page_courante_retour_formulaire"]))
{
$pagecourante=intval($_GET['page']);
if($pagecourante>$nombreDePages)
$pagecourante=$nombreDePages;
}
if (isset($_POST["page_courante_retour_formulaire"]) && !isset($_GET['page']))
{
$pagecourante=intval($_POST["page_courante_retour_formulaire");
}
if (empty($pagecourante))
$pagecourante=1; //par défaut car intval mettra 0 si pas un entier
$premiereEntree=($pagecourante-1)*$elmtpage;
$retour_page=mysql_query('SELECT * FROM personne ORDER BY num LIMIT '.$premiereEntree.', '.$emltpage.'');
while($donnees_page=mysql_fetch_assoc($retour_page))
{
?>
<form name="pers" action="personne.php" method="POST">
<input type="hidden" name="page_courante_retour_formulaire" value="<?php echo $pagecourante; ?>" />
<table height="398" border="10%" align="center">
<caption><h1>Fiche de personne</h1></caption>
<tr align="center">
<th>numero</th>
<td><input type="text" name="num" value="<?php echo(''.$donnees_page['num'].'') ;?>"></td>
</tr>
<tr align="center">
<th>nom</th>
<td><input type="text" name="nom" value="<?php echo(''.$donnees_page['nom'].'') ;?>"></td>
</tr>
<tr align="center">
<th>prenoms</th>
<td><input type="text" name="prenoms" value="<?php echo(''.$donnees_page['prenoms'].'') ;?>"></td>
</tr>
<tr align="center">
<th>date naiss</th>
<td><input type="text" name="datenaiss" value="<?php echo(''.$donnees_page['datenaiss'].'') ;?>"></td>
</tr>
<tr align="center">
<th>sexe</th>
<td><input type="text" name="sexe" value="<?php echo(''.$donnees_page['sexe'].'') ;?>"></td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" value="valider"></td>
</tr>
</table>
</form><?
}
echo '<p align="center">Page : ';
for($i=1; $i<=$nombreDePages; $i++)
{
if($i==$pagecourante)
echo ' [ '.$i.' ] ';
else
echo ' <a href="personne.php?page='.$i.'">'.$i.'</a> ';
}
Re: submit en restant sur la méme page
Posté : 30 déc. 2009, 12:10
par dadon
je vais l'essayer......thanks
Re: submit en restant sur la méme page
Posté : 30 déc. 2009, 12:28
par dadon
Je vous REMERCIE 1000fois....Ça a marché.....yavé une accolade manquante: $pagecourante=intval($_POST["page_courante_retour_formulaire"]). A bientot
Re: submit en restant sur la méme page
Posté : 30 déc. 2009, 13:18
par dadon
En fait au lieu que les numéros de page s'affiche d'aprés ce code:
for($i=1; $i<=$nombreDePages; $i++)
{
if($i==$pagecourante)
{
echo ' [ '.$i.' ] ';
}
else
{
echo ' <a href="personne.php?page='.$i.'">'.$i.'</a> ';
}
}
Je voudrais créer à la place des boutons précédent et suivant......Est ce possible?
Re: submit en restant sur la méme page
Posté : 30 déc. 2009, 13:25
par Ryle
C'est tout à fait possible.... tu connais le nombre de pages maximum, tu connais la page qui est actuellement consulté. Il ne te reste qu'à définir quand est ce que le bouton précédent peut être affiché (à priori si tu n'es pas sur la première page) et quand le bouton suivant doit être affiché (vraissemblablement si tu n'es pas sur la dernière page), et afficher les liens qui vont bien dans ces deux cas

Re: submit en restant sur la méme page
Posté : 30 déc. 2009, 13:33
par dadon
merci de votre réponse. pouvez vous me lancer sur une piste svp........
Re: submit en restant sur la méme page
Posté : 30 déc. 2009, 13:42
par macgawel
ICI par exemple...