Button suivant

raouen Messages postés 24 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 23 juin 2011 - 13 mai 2011 à 13:43
raouen Messages postés 24 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 23 juin 2011 - 15 mai 2011 à 13:34
bonjour
comment faire le code du button suivant dans un systeme de pagination de formulaire dynamique avec nesecité de varible de session pour sauvgarde les valeur de page en page de la systeme de pagination
merci
a++

10 réponses

cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
13 mai 2011 à 17:14
bonjour
formulaire dynamique ???
veux tu dire un formulaire génerer depuis une table mysql
page à page
avec pagination + enregistrement dans un tableau $_SESSION
debut etape 0 <-> etape 1 <-> etape 2 ... <-> etape n-1 <-> n ou fin+traitement

as-tu un code ?
a++

Bonne programmation !
0
raouen Messages postés 24 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 23 juin 2011
13 mai 2011 à 21:39
bonsoir oui c'est ca ce que je veux dire exactemant j'ai chercher trop mai j'ai rien trouver voici mon code
<?php

session_start();
$nb_questions[0]= "";

for($i=1;$i<=$nb_questions[0];$i++){
if(isset($_POST['question' . $i]) )
{
  $_SESSION['question' . $i]= $_POST['question' . $i];
  echo $_SESSION['question' . $i];
  
}
}
?>


au debut de la page
include("conection.php");
if( isset($_GET['page']) && is_numeric($_GET['page']) )

    $page = $_GET['page'];

else

    $page = 1;

// Nombre d'info par page

$pagination = 7;

// Numéro du 1er enregistrement à lire

$limit_start = ($page - 1) * $pagination;

// Préparation de la requête

$sql = "SELECT * FROM question WHERE id_categorie='1' LIMIT $limit_start, $pagination";

// Requête SQL

$resultat = mysql_query($sql);

// Traitement et affichage des données



while ( $donnee = mysql_fetch_assoc($resultat) ) {
echo"
";
echo"\";

echo\"----
\";

echo\"";

echo"<table width='100%' cellspacing='0'>";

echo"----
";

echo", \";

echo\" <label for='5X21X73'>\".$donnee['libelle_quest'].\" (\".$donnee['remarques'].\")</label>\";

echo\"\";
echo\"----
\";

echo\"";
$query_rep  = "SELECT *
FROM reponse
WHERE id_question = ".$donnee['id_question']." ORDER BY id_question";
$result = mysql_query($query_rep) OR die("Erreur");
echo"<table class='question'>";

while ( $reponse = mysql_fetch_array($result) )
{
echo"----
";
echo",  </td>\";
echo\"";
if($donnee['type']=="Multichoix")
{
echo"";
echo"<label class=\"answertext\">".$reponse['libelle_rep']."</label>";
echo "
";
}
else if($donnee['type']=="choix unique")
{
echo "";
echo $reponse['libelle_rep']."
";

}

}//fin while reponses
if($donnee['type']=="champs texte")
echo", \";
else if($donnee['type']==\"textarea\")
{

echo \"<textarea name=\"question".$donnee['id_question']."\" class=\"textarea\" rows=\"5\" cols=\"40\"></textarea>";
}echo "
";
echo", \";
echo\", \";
echo\"\";
echo"
";
echo"</td>";

echo"</tr>";

echo"<tr>";

echo"<td align='center' bgcolor='#E5F9FF'>";

echo"";
     
echo"</td>";

echo"</tr>";

echo"</table>";

echo"</td>";


echo"</tr>";

echo"</table>";

echo"\";

echo\"----
\";

echo\", \";

echo\"\";

echo"
";
echo"
";

//fin while question
                  


    /* ICI VOTRE CODE NORMAL */
    /* Affichage d'un élément */
}

// Nb d'enregistrement total

$nb_total mysql_query('SELECT COUNT(*) AS id_question FROM question WHERE id_categorie 1 ');

$nb_total = mysql_fetch_array($nb_total);

$nb_total = $nb_total['id_question'];

 

// Pagination

$nb_pages = ceil($nb_total / $pagination);
            //Si il n'y a pas plus d'une page on renvoit rien...  


?>

les butons
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> 

','_self');"  value="PAGE PRECEDENTE"> 
 $nb_pages) require('traitement
.php'); ?>','_self');"  value="PAGE suivante"> 


</form>

je peux naviguere entre les page mais sans stochkage de varibales de session et recupération et je sais pas comment rendre le button suivant de dreniere page m'envoi a la page de traitement.php

a+++
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
13 mai 2011 à 22:24
j'ai bricolé ça sans pagination ça à l'air de fonctionner je vais etudier ton code aprés je te donne des nouvelles des que ...
a++


<?php
session_start();
/*on pourrait aussi faire  3 variables pour les forms
$f[1]=
$f[2]=
$f[3]=
*/

//$rs=array();
//$rs=extract($_SESSION);
$host='localhost';
$login='root';
$pass='';
$base='a';
$conn = mysql_connect($host,$login,$pass) or die('Erreur de connexion '.mysql_error());
$db = mysql_select_db($base,$conn)  or die('Erreur de selection '.mysql_error());
$sql="select * from formulaire";
$q=mysql_query($sql);
$count=mysql_num_rows($q);
while($r=mysql_fetch_array($q)){
$f[$r['id']] ='<form method="post" action="">'."\r\n";
$f[$r['id']].=''.$r['html']."\r\n";
$f[$r['id']].=''."\r\n";
$f[$r['id']].='</form>
'."\r\n";
} 
mysql_close($conn);

//echo '';
//print_r($f);
//echo '

';
/*choix*/




/* phase 1 $_POST['id']==0*/
if(isset($_POST['id']) && isset($_POST['submit0']) && $_POST['submit0']){

if(isset($_SESSION['prenom'])){
$v=$_SESSION['prenom'];
}else{
$v="";
}
$f[1]=str_replace('name="prenom"','name="prenom" value="'.$v.'"',$f[1]);
echo $f[1];
}

/* phase 2 ... n-1 */
elseif(isset($_POST['id']) && $_POST['id']!=0 && $_POST['id']!=($count+1)){

$id=(int)$_POST['id'];

if(isset($_POST['submit1']) ){
$v=$_SESSION['nom'];
$t='name="nom"';
/*...*/
}

elseif(isset($_POST['submit2'])){
$v=$_SESSION['date'];
$t='name="date"';
}

else{
$v="";
}

$f[$id]=str_replace(''.$t.'',''.$t.' value="'.$v.'"',$f[$id]);
echo $f[$id];

echo '<form method="post" action="">';
echo '';
echo '';
echo '</form>';
echo '<hr>[? TOUT RECOMMENCER]';
}

/*n*/
//enregistrer db ou file ou traitement ...
elseif(isset($_POST['id']) && $_POST['id']!=0 && $_POST['id']==($count+1)){
echo '<form method="post" action="traitement.php">';
foreach($_SESSION as $k => $v){
echo '';
}
echo '
</form>';
echo '<hr>[? TOUT RECOMMENCER]';
}

else{
//demarrage
echo '<form method="post" action="">


</form>';
}   
 

foreach($_POST as $k =>$v){
$_SESSION[$k]=$v;
}
echo '';
print_r($_SESSION);
echo '

';
?>


CREATE TABLE IF NOT EXISTS `formulaire` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`html` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
0
raouen Messages postés 24 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 23 juin 2011
13 mai 2011 à 22:51
dacord merci bien
d'aprés le code posté vous entrer les valeus de dormulaire de sorte" <label>date</label>\r\n
<label>PHOTO 1</label>
\r\n\r\n'"
ben j'entre mas valeurs d'apré une interface adminestratuer de sorte qu'il tape
le nom de question
le type de question(champ texte,multichoix,choix unique,textarea..)
ensuite si la question est multichoix ou choix unique..il tape les valeur posible pour la question et il seron enregistrer dans table appelé repnse et l'affichage de mes formulaire et comme le montre mon code
a+++ merciiiiiiiiiiii
0

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

Posez votre question
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
14 mai 2011 à 11:22
bonjour
essaie voir ça
sans garantie j'ai pas tes tables ...
a++

<?php
session_start();
foreach($_POST as $k = > $v){
$_SESSION[$k]=$v;
}

/*
$nb_questions[0]="";
for($i=1;$i<=$nb_questions[0];$i++){
if(isset($_POST['question' . $i])){
$_SESSION['question' . $i]= $_POST['question' . $i];
echo $_SESSION['question' . $i];
}
}
*/
/*
$host='localhost';
$login='root';
$pass='';
$base='a';
$conn = mysql_connect($host,$login,$pass) or die('Erreur de connexion '.mysql_error());
$db = mysql_select_db($base,$conn)  or die('Erreur de selection '.mysql_error());
*/

?>
<!--
au debut de la page
Code PHP :
-->
<?php

$sql = "SELECT * FROM question WHERE id_categorie='1'";
$resultat = mysql_query($sql);
$count=mysql_num_rows($resultat);/*pour afficher le dernier form*/


if(isset($_GET['page']) && is_numeric($_GET['page']) && (int)$_GET['page'] > 0){
$page = $_GET['page'];
}else{
$page=1;
}   
?>
<form method="get" action="<?php echo $_SERVER["PHP_SELF"];?>">
">

</form>, <form method="get" action="<?php echo $_SERVER["PHP_SELF"];?>">
">

</form>

<?php
echo ''.$page .'
';
// Nombre d'info par page
$pagination = 2;
// Numéro du 1er enregistrement à lire
$limit_start = ($page - 1) * $pagination;

if($limit_start<=($count/$pagination)){
// Préparation de la requête

$sql = "SELECT * FROM question WHERE id_categorie='1' LIMIT $limit_start, $pagination";


// Requête SQL
$resultat = mysql_query($sql);
// Traitement et affichage des données
while ( $donnee = mysql_fetch_assoc($resultat) ) {
echo"
";
echo"\";
echo\"----
\";
echo\"";
echo"<table width='100%' cellspacing='0'>";
echo"----
";
echo", \";
echo\" <label for='5X21X73'>\".$donnee['libelle_quest'].\" (\".$donnee['remarques'].\")</label>\";
echo\"\";
echo\"----
\";
echo\"";

$query_rep  = "SELECT *
FROM reponse
WHERE id_question = ".$donnee['id_question']." ORDER BY id_question";

$result = mysql_query($query_rep) OR die("Erreur");
echo"<table class='question'>";

while ( $reponse = mysql_fetch_array($result) )
{
echo"----
";
echo",  </td>\";
echo\"";
if($donnee['type']=="Multichoix")
{
echo"";
echo"<label class=\"answertext\">".$reponse['libelle_rep']."</label>";
echo "
";
}
else if($donnee['type']=="choix unique")
{
echo "";
echo $reponse['libelle_rep']."
";
}
}//fin while reponses
if($donnee['type']=="champs texte")
echo", \";
else if($donnee['type']==\"textarea\")
{
echo \"<textarea name=\"question".$donnee['id_question']."\" class=\"textarea\" rows=\"5\" cols=\"40\"></textarea>";
}echo "
";
echo", \";
echo\", \";
echo\"\";
echo"
";
echo"</td>";
echo"</tr>";
echo"<tr>";
echo"<td align='center' bgcolor='#E5F9FF'>";
echo"";
echo"</td>";
echo"</tr>";
echo"</table>";
echo"</td>";


echo"</tr>";
echo"</table>";
echo"\";
echo\"----
\";
echo\", \";
echo\"\";
echo"
";
echo"
";

//fin while question



/* ICI VOTRE CODE NORMAL */
/* Affichage d'un élément */
}

// Nb d'enregistrement total

$nb_total mysql_query('SELECT COUNT(*) AS id_question FROM question WHERE id_categorie 1 ');
$nb_total = mysql_fetch_array($nb_total);
$nb_total = $nb_total['id_question'];
// Pagination
$nb_pages = ceil($nb_total / $pagination);
//Si il n'y a pas plus d'une page on renvoit rien...   

}else{
echo '';
print_r($_SESSION);
echo '

';

$inputhidden="";
foreach($_SESSION as $k => $v){
$$inputhidden.='';
}

echo '<form method="post" action="traitement.php">
'.$inputhidden.'

</form>';
//fin
}
?>




Bonne programmation !
0
raouen Messages postés 24 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 23 juin 2011
14 mai 2011 à 12:31
bonjour
dac merci je vais essayer tout de suite
merci beaucoup pour votre aide
bonne journée
0
raouen Messages postés 24 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 23 juin 2011
14 mai 2011 à 13:15
rebonjour
j'ai nomé mon fichier esssss.ph juste pour essayer..
j'ai essayé quand j'ouvre mon fichier pour la première fois je trouve des erreurs au niveau du button précédente et suivante" Notice: Undefined index: page in C:\wamp\www\navigateurs web\esssss.php on line 79" ausi même chose pour le button suivant mai elle sont cliquableet elle m'envoye a la page numéro "http://localhost/navigateurs%20web/esssss.php?page=0&BT1=PAGE+SUIVANTE"
pas d'erreur mai les button suiavant ne m'avance pas sauf si je clique 2 fois: la premiere fois elle s'incremente au niveus de l'@ par 1 et reste dans la meme page, la 2éme fois elle m'envoie a:
" http://localhost/navigateurs%20web/esssss.php?page=2&BT1=PAGE+SUIVANTE"
un einterface comme je le veux en html mai elle ne m'affiche rien de la base juste je trouve 3 button suivant/précédent/traitement et array() et quand je clique sur suivant ou précédent elle sont cliquable et change l'@ chaque fois sans affiche de la base
le button suivant elle s'incremente toujours a l'infinie..et me donne interface avec les 3 button et le numéro de page et array () ..
comment corriger ca??
dans ma base
j'ai 3 table :
catégorie:id_categorie:clé primaire,libelle_cat
question:`id_question:clé primaire`, `id_categorie`, `libelle_quest`, `type`, `remarques
chaque question appartient à une catégorie et une question peu avoir une remarque ou pas comme l'adminestrateur le veux
reponse :id_reponse:clé primaire,libelle_rep,id_question(le id de la question de la table question pour dire que cette posibililté de réponse et pour la question numéro..)
merci en tout cas
mai ca ve dire quoi les variable $k et $v?
merciiiiiiiiii
a++
0
raouen Messages postés 24 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 23 juin 2011
14 mai 2011 à 14:25
salut
le code fonctionne en cas ou le $pagination = 2; mai il n'affiche pas les drenier enregistrement de la table et j'ai besoin de 7 enregistrement par page c'est obligatoire
button suivant/précédent boucle dans l'ifinie !!!
a+++
0
raouen Messages postés 24 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 23 juin 2011
14 mai 2011 à 18:52
salut !
ca marche avec 7 enregistrement en changeant l'instruction if($limit_start<=$count)
mai le les button meme en arriavant a la dreniere page reste existante puique c de code html et elles s'incrimente
comment etre sur que il entrain de récupérér mes valeurs ??
a++
0
raouen Messages postés 24 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 23 juin 2011
15 mai 2011 à 13:34
bonjour tout le monde !
j'ai corriger le problème de boucle a l'infinie des buttons
<form method="get" action="<?php echo $_SERVER["PHP_SELF"];?>">
">

</form>
</td><td>
<form method="get" action="<?php echo $_SERVER["PHP_SELF"];?>">
1) echo ($_GET['page']-1); ?>">

</form>


quelq'un peut m'aider pour le problème des variables en sessions il ne récupère po ce que je saiasie ou je coche dans les buttons radio quand j'affiche par print_r($_SESSION); juste je trouve: Array ( [submit] => suivant >> ) de la premiere page de site qui m'envoie vers la pagination !!!
Merci
0
Rejoignez-nous