Forum Clubic

[PHP] Formulaire avec des onglets

Bonjour,
Je souhaite développer en php uniquement un formulaire de très grande taille de près d’une cinquantaine de champs ou de listes différentes.
Afin d’éviter un aspect de surcharge, j’aimerais pouvoir séparer ce formulaire à l’aide d’onglets, tout en conservant un seul et unique formulaire et donc un seul bouton de validité.
Je sais déjà faire des onglets aisni que gerer un rafraississement du formulaire sans perdre les 1eres données saisies…

Donc si quelqu’un sait séparer UN formulaire sous plusieurs onglets tout en conservant les données saisies dans les autres onglets, qu’il se manifeste, je planche la dessus depuis un bon moment déjà… :frowning:
Ou si vous avez une autre astuce je suis preneur :wink:

Les onglets ne peuvent pas servir à "splitter" une même page mais seulement à éviter le multifenetrage.
Un formulaire sur plusieurs onglets me paraît être un gros gros casse tête…

Une solution serait de procéder par étapes…

Au début j’aurais fait comme toi étapes par étapes mais mon cahier des charges me demande de tenter par onglets ou une solution similaire…

Ensuite rien ne t’empeche de génerer des onglets avec des <div> qui s’affichent et se masquent (jeu de javascript). Mais c’est galère!!


<html>
<head>
<script language="javascript">

function affiche(a)
{
if (a==1)
{
document.getElementById("calque1").style.visibility="visible";
document.getElementById("calque2").style.visibility="hidden";
}
else
{
document.getElementById("calque2").style.visibility="visible";
document.getElementById("calque1").style.visibility="hidden";
}
}

</script>

</head>
<body>

<table>
<tr>
<td>
<a href="java script:affiche(1)">onglet1</a>
</td>

<td>
<a href="java script:affiche(2)">onglet2</a>
</td>

</tr>
</table>

<form>

<div id="calque1" style="position:absolute; left:200px; top:20px;">
<input type="text">
</div>

<div id="calque2" style="position:absolute; left:200px; top:20px; visibility:hidden">
 <select name="machin">
 <option>b</option>
 </select>
 <input type="submit"></input>
</div>

</form>

</body>

Je te remercie mais j’ai pour obligation d’utiliser du php et je viens de trouver une solution, j’utilise des sessions pour conserver mes données :slight_smile:
Et ça marche nikel.

je serais curieux de voir le résultat de ton travail, tu as un lien?

L’ajax sa peut servir aussi dans ce cas !

Envoyer les résultats temporaires dans la base de donné aprés les avoir vérifiés, et si aucune erreur n’est apparu, afficher la suite du formulaire sans raffraichir la page.

C’est exact, justement je m’intéresse à cela. J’aimerais faire à peu près la mê^mê chose en ajax.
Quelqu’un aurais-il un lien vers une documentation pour réaliser ce système d’onglet en Ajax (je développe avec ror), ou une petit explication?

Merci d’avance

moi j’ai opté pour des display:visible/none

generalement quand on fait un gros formulaire on gere ça avec un array de donnée sur lequel on va boucler et générer les champs qui conviennent du coup tres facile de definir des groupes de champ

a l arrache un des code que j utilise


<script language="Javascript">

function showtab(tab)
{
	SetCookie("tab",tab);
	for(key in keys)
  if(keys[key]==tab)
  {
  	document.getElementById('cell_'+key).style.display='table-row';
  	document.getElementById('cell_'+key).style.visibility='visible';
  }
  else
  {
  	document.getElementById('cell_'+key).style.display='none';
  	document.getElementById('cell_'+key).style.visibility='hidden';
  }
}

var keys = new Array();
<?php

foreach($attrinfos as $key =>&$info)
{
	echo "keys['$key']=";
	if(isset($info['tab']))
	{
  echo "'{$info['tab']}';\n";
  if(!isset($TABS[$info['tab']]['lib']))
    $TABS[$info['tab']]['lib']=ucwords($info['tab']);
	}
	else echo "'';\n";
}
?>
</script>

pour chaque champ (key) je precise dans un tableau javascript dans quel tab (onglet) il est ensuite j’ai une fonction showtab qui va parcourir ce tableau en affichant les champ dans le bon tab et en masquant les autre …; simple non ?

salut phoenixledevin ,
comment tu fait des onglets en php?
je ne trouve pas.
merci.

Ce n’est pas en PHP qu’il fait ses onglets mais en X(HT)ML et avec un language de programmation tiers (JavaScript, Ajax, …).
Le PHP ne permet de pas de faire des onglets car les onglets c’est de l’affichage, et PHP ne s’occupe pas de l’affichage :slight_smile: