Formulaire multipages

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Formulaire multipages

Re: Formulaire multipages

par Hywan » 15 déc. 2007, 19:38

Bonjour Messieurs,
Juste en passant, il y a aussi des Mesdames, restons galants ;-).

par AB » 14 déc. 2007, 23:58

Sinon il y a une autre méthode :

Lors de la soumission de ton premier formulaire tu insères tes données dans la table et juste après l'insertion tu fais mysql_insert_id() pour connaitre l'id de ta table qui a été générer pour cette insertion, que tu peux par exemple enregistrer dans une variable de session.

$_SESSION['ID'] = mysql_insert_id();

Dans tes pages suivantes, en récupérant $_SESSION['ID'] tu pourras faire une nouvelle insertion de valeurs dans ta ligne en faisant une requête du genre :

UPDATE .... WHERE ID = $_SESSION['ID']

(Pour que mysql_insert_id() fonctionne il faut que ID soit auto incrémenté)

par msslimani » 14 déc. 2007, 20:58

Merci beaucoup, encore une fois désolé pour ma maladresse.

par AB » 14 déc. 2007, 20:51

Tu mets session_start(); dans les pages ou tu veux pouvoir avoir accès à tes données de sessions

$_SESSION['post1'] = $_POST; dans la première page.

Dans la deuxième tu pourras récupérer les valeurs post de la première page dans $_SESSION['post1']

Plus de doc sur le fonctionnement des sessions en tapant 'sessions php' dans google

par Truc » 14 déc. 2007, 20:51

Modération :
msslimani, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

par msslimani » 14 déc. 2007, 20:39

Désolé d'avoir envoyer le code en "vrac", merci pour votre réponse.
Mais à quel niveau je dois ajouter la variable de session (désolé je suis encore bleu...)

par AB » 14 déc. 2007, 20:31

J'ai pas lu le code mais sur le principe tu peux par exemple enregistrer les valeurs du POST de la première page dans une variable de session, de même pour la deuxième, ce qui te permettrait de pouvoir y avoir accès sur la troisième page :-k

Formulaire multipages

par msslimani » 14 déc. 2007, 19:30

Bonjour Messieurs,

J'ai pu réalisé un formulaire de saisie de données pour un dossier médical en 3 étapes dans une même table Mysql.
Les données sont enregistrées mais j'ai trois differents dossiers, chacun a seulement les données d'un seul formulaire.

Je cherche un méthode si possible pour que les trois formulaires enregistrent les données pour le même ID.

Merci pour votre aide.

Mon code de la premiere page "nouveau dossier.php"
<?php require_once('../Connections/elmawloud_intra.php');
require_once "../maincore.php";
require_once "../subheader.php";
require_once "../side_left.php"; ?>

<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "insertion")) {
  $insertSQL = sprintf("INSERT INTO dossier_patients (nom_h, nom_f, prenom_h, prenom_f, date_n_f, lieu_n_h, lieu_n_f, adresse_h, adresse_f, tel_h, tel_f, prof_h, prof_f, groupe_h, groupe_f, date_mariage, origine) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['nom_h'], "text"),
                       GetSQLValueString($_POST['nom_f'], "text"),
                       GetSQLValueString($_POST['prenom_h'], "text"),
                       GetSQLValueString($_POST['prenom_f'], "text"),
                       GetSQLValueString($_POST['date_n_f'], "text"),
                       GetSQLValueString($_POST['lieu_n_h'], "text"),
                       GetSQLValueString($_POST['lieu_n_f'], "text"),
                       GetSQLValueString($_POST['adresse_h'], "text"),
                       GetSQLValueString($_POST['adresse_f'], "text"),
                       GetSQLValueString($_POST['tel_h'], "text"),
                       GetSQLValueString($_POST['tel_f'], "text"),
                       GetSQLValueString($_POST['prof_h'], "text"),
                       GetSQLValueString($_POST['prof_f'], "text"),
                       GetSQLValueString($_POST['groupe_h'], "text"),
                       GetSQLValueString($_POST['groupe_f'], "text"),
                       GetSQLValueString($_POST['date_mariage'], "text"),
                       GetSQLValueString($_POST['origine'], "text"));

  mysql_select_db($database_elmawloud_intra, $elmawloud_intra);
  $Result1 = mysql_query($insertSQL, $elmawloud_intra) or die(mysql_error());

  $insertGoTo = "bilan.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}

mysql_select_db($database_elmawloud_intra, $elmawloud_intra);
$query_nouveau_dossier = "SELECT nom_h, nom_f, prenom_h, prenom_f, date_n_h, date_n_f, lieu_n_h, lieu_n_f, adresse_h, adresse_f, tel_h, tel_f, prof_h, prof_f, groupe_h, groupe_f, allergies_h, alergies_f, date_mariage, infertilite_primaire, infertilite_secondaire, infertilite_anciete, origine, id FROM dossier_patients";
$nouveau_dossier = mysql_query($query_nouveau_dossier, $elmawloud_intra) or die(mysql_error());
$row_nouveau_dossier = mysql_fetch_assoc($nouveau_dossier);
$totalRows_nouveau_dossier = mysql_num_rows($nouveau_dossier);
?>

<? echo "<table border='0' style='border: 1px solid #FF9900' cellspacing='1' width='100%' cellpadding='3' valign='top'><tr>";
echo "<td class='panel-faq' height='20' width='100%'>Nouveau Dossier</td></tr>";
echo "<tr><td class='main-body' width='100%' align='right'>"; 

echo "</td></tr></table><br>";?>
<? echo "<center><b><font color='#ff9900'>Etape 1 : Informations Générales</font></b></center><br>"; ?>

<form action="<?php echo $editFormAction; ?>" id="insertion" name="insertion" method="POST">
  <table width="95%" border="0" align="center" cellpadding="2" cellspacing="2" onafterupdate="MM_validateForm('nom_h','','R','nom_f','','R','prenom_h','','R','prenom_f','','R','date_h','','R','date_n_f','','R','lieu_n_h','','R','lieu_n_f','','R','tel_h','','R','tel_f','','R','prof_h','','R','prof_f','','R','groupe_h','','R','groupe_f','','R','allerigies_h','','R','allerigies_f','','R','date_mariage','','R','primaire','','R','secondaire','','R','anciennete','','R','origine','','R','adresse_h','','R','adresse_f','','R');return document.MM_returnValue">
    
    <tr>
      <td width="28%">&nbsp;</td>
      <td width="30%" align="center" bgcolor="#ff9900"><strong>Homme</strong></td>
      <td width="42%" align="center" bgcolor="#ff9900"><strong>Femme</strong></td>
    </tr>
    <tr>
      <td bgcolor="#e4e2e2">Nom</td>
      <td align="center" bgcolor="#e4e2e2"><input name="nom_h" type="text" class="textbox" id="nom_h" /></td>
      <td align="center" bgcolor="#e4e2e2"><input name="nom_f" type="text" class="textbox" id="nom_f" /></td>
    </tr>
    <tr>
      <td bgcolor="#e4e2e2">Pr&eacute;nom</td>
      <td align="center" bgcolor="#e4e2e2"><input name="prenom_h" type="text" class="textbox" id="prenom_h" /></td>
      <td align="center" bgcolor="#e4e2e2"><input name="prenom_f" type="text" class="textbox" id="prenom_f" /></td>
    </tr>
    <tr>
      <td bgcolor="#e4e2e2">Date de naissance</td>
      <td align="center" bgcolor="#e4e2e2"><input name="date_h" type="text" class="textbox" id="date_h" /></td>
      <td align="center" bgcolor="#e4e2e2"><input name="date_n_f" type="text" class="textbox" id="date_n_f" /></td>
    </tr>
    <tr>
      <td bgcolor="#e4e2e2">Lieu de naissance</td>
      <td align="center" bgcolor="#e4e2e2"><input name="lieu_n_h" type="text" class="textbox" id="lieu_n_h" /></td>
      <td align="center" bgcolor="#e4e2e2"><input name="lieu_n_f" type="text" class="textbox" id="lieu_n_f" /></td>
    </tr>
    <tr>
      <td bgcolor="#e4e2e2">Adresse</td>
      <td align="center" bgcolor="#e4e2e2"><textarea name="adresse_h" cols="35" class="textbox" id="adresse_h"></textarea></td>
      <td align="center" bgcolor="#e4e2e2"><textarea name="adresse_f" cols="35" class="textbox" id="adresse_f"></textarea></td>
    </tr>
    <tr>
      <td bgcolor="#e4e2e2">Num&eacute;ro de T&eacute;l. </td>
      <td align="center" bgcolor="#e4e2e2"><input name="tel_h" type="text" class="textbox" id="tel_h" /></td>
      <td align="center" bgcolor="#e4e2e2"><input name="tel_f" type="text" class="textbox" id="tel_f" /></td>
    </tr>
    <tr>
      <td bgcolor="#e4e2e2">Profession</td>
      <td align="center" bgcolor="#e4e2e2"><input name="prof_h" type="text" class="textbox" id="prof_h" /></td>
      <td align="center" bgcolor="#e4e2e2"><input name="prof_f" type="text" class="textbox" id="prof_f" /></td>
    </tr>
    <tr>
      <td bgcolor="#e4e2e2">Groupage</td>
      <td align="center" bgcolor="#e4e2e2"><input name="groupe_h" type="text" class="textbox" id="groupe_h" /></td>
      <td align="center" bgcolor="#e4e2e2"><input name="groupe_f" type="text" class="textbox" id="groupe_f" /></td>
    </tr>
    <tr>
      <td bgcolor="#e4e2e2">All&eacute;rgies</td>
      <td align="center" bgcolor="#e4e2e2"><input name="allerigies_h" type="text" class="textbox" id="allerigies_h" /></td>
      <td align="center" bgcolor="#e4e2e2"><input name="allerigies_f" type="text" class="textbox" id="allerigies_f" /></td>
    </tr>
    <tr>
      <td bgcolor="#e4e2e2">Date de mariage </td>
      <td colspan="2" align="center" bgcolor="#e4e2e2"><input name="date_mariage" type="text" class="textbox" id="date_mariage" value=""></td>
    </tr>
    <tr>
      <td align="center">&nbsp;</td>
      <td colspan="2" align="center" bgcolor="#ff9900"><strong>Infertilit&eacute;</strong></td>
    </tr>
    <tr>
      <td bgcolor="#e4e2e2">Primaire</td>
      <td colspan="2" bgcolor="#e4e2e2"><input name="primaire" type="text" class="textbox" id="primaire" value=""></td>
    </tr>
    <tr>
      <td bgcolor="#e4e2e2">Secondaire</td>
      <td colspan="2" bgcolor="#e4e2e2"><input name="secondaire" type="text" class="textbox" id="secondaire" value=""></td>
    </tr>
    <tr>
      <td bgcolor="#e4e2e2">Anciennet&eacute;</td>
      <td colspan="2" bgcolor="#e4e2e2"><input name="anciennete" type="text" class="textbox" id="anciennete" value=""></td>
    </tr>
    <tr>
      <td bgcolor="#e4e2e2">Origine</td>
      <td colspan="2" bgcolor="#e4e2e2"><input name="origine" type="text" class="textbox" id="origine" value=""></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td align="center"><input name="Submit2" type="reset" class="button" value="EFFACER" /></td>
      <td align="center"><input name="Submit" type="submit" class="button" onclick="MM_validateForm('nom_h','','R');return document.MM_returnValue" value="VALIDER" /></td>
    </tr>
</table>
    
  
  <input type="hidden" name="MM_insert" value="insertion">
</form>

<? 
require_once "../side_right.php";
require_once "../footer.php";
?>
<?php
mysql_free_result($nouveau_dossier);
?>