Undefined index in ... différents formulaires

Fermé
abirgl Messages postés 127 Date d'inscription lundi 31 octobre 2016 Statut Membre Dernière intervention 20 juin 2017 - 2 janv. 2017 à 11:14
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 2 janv. 2017 à 16:16
Bonjour,
J'ai une page php qui contient 4 formulaires et chaque formulaire contient un bouton (qui est associé à une action), je veux récupérer les éléments du premier et du deuxième formulaire pour les traiter dans le 3 ème et puis je veux récupérer les éléments du premier, deuxième et troisième formulaire pour les traiter dans le 4 ème formulaire,mon problème c'est que les éléments du 1er ,2 ème et 3 ème formulaires ne sont pas reconnus en dehors de leurs forms; je vous montre le code de mes pages php:
Commençons par la page index.php

<form name="f1" action="page1.php" method="post">
<label> Lab1: </label>
<input type="text" name="lab1" >
<input type="submit" name="btn_lab1" value="Bouton1">
</form>
<form name="f2" action="page2.php" method="post">
<label> Lab2: </label>
<input type="text" name="lab2">
<input type="submit" name="btn_lab2" value="Bouton2">
</form>
<form name="f3" action="page3.php" method="post">
<label> Quantite OT </label>
<input name="QteOT" type="number" min="0" max="10">
<label> Quantite Restante </label>
<input name="QteRestante" type="number" min="0" max="15">
<p>
<input type="submit" name="btn_qte" value="Save">
</p>
</form>
<form name="f4" action="page4.php" method="post">
<input type="submit" name="btn_valid" value="Save & valid">
</form>

Maintenant je vous montre le code de la page "page1.php" qui fonctionne bien:

<?php
include("connect.php");
$lab1=$_POST['lab1'];
echo $lab1;
$sql_update_table1="update table1 set Lab1='$lab1' ... ";
$stmt_update_table1=sqlsrv_query($conn,$sql_update_table1);
if($stmt_update_table1===false)
{
die(print_r(sqlsrv_errors(),true));
}
?>

Le code de "page2.php" est le suivant, ça fonctionne bien aussi :

<?php
include("connect.php");
$lab2=$_POST['lab2'];
echo $lab2;
$sql_update_table2="update table 2 set Lab2='$lab2' where ... ";
$stmt_update_table2=sqlsrv_query($conn,$sql_update_table2);
if($stmt_update_table2===false)
{
die(print_r(sqlsrv_errors(),true));
}
?>

Voici le code de "page3.php" qui m'affiche les messages d'erreur: Undefined index: lab1 et Undefined index: lab2

<?php
include("connect.php");
$qteot=$_POST['QteOT'];
echo "<br> Qte OT : ".$qteot;
$qterest=$_POST['QteRestante'];
echo "<br> Qte Restante : ".$qterest;
$lab1=$_POST['lab1'];
echo "<br> Lab1 : ".$lab1;
$lab2=$_POST['lab2'];
echo "<br> Lab2 : ".$lab2;
$sql_req3=" ... ";
$stmt_req3=sqlsrvquery(...);
...
?>

Concernant la page4.php, voici son code:

<?php
include ("connect.php");
$lab1=$_POST['lab1'];
$lab2=$_POST['lab2'];
$qteOt=$_POST['QteOT'];
$qteRest=$_POST['QteRestante'];
echo "<br> Lab1 : ".$lab1;
echo "<br> Lab2 : ".$lab2;
echo "<br> Quantite OT : ".$qteOt;
echo "<br> Quantite Restante : ".$qteRest;
$sql_validation="update table_OT set .... ";
$stmt_validation=sqlsrv_query($conn,$stmt_validation);
...
?>

Ceci m'affiche aussi :
Undefined index: lab1 in ...
Undefined index: lab2 in ...
Undefined index: QteOT in ...
Undefined index: QteRestante in ...
S'il vous plait, comment résoudre ce problème ? merci d'avance

1 réponse

jordane45 Messages postés 38326 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 décembre 2024 4 712
2 janv. 2017 à 11:20
Bonjour,

Chaque FORM est indépendant ....
Vu que dans :
<form name="f3" action="page3.php" method="post">
<label> Quantite OT </label>
<input name="QteOT"  type="number" min="0" max="10">
<label> Quantite Restante </label>
<input name="QteRestante" type="number" min="0" max="15">
<p>
<input type="submit" name="btn_qte" value="Save">
</p>
</form>

Tu n'as pas les inputs label1 et 2 ... normal qu'il ne les trouve pas dans le fichier page3.php

0
abirgl Messages postés 127 Date d'inscription lundi 31 octobre 2016 Statut Membre Dernière intervention 20 juin 2017
2 janv. 2017 à 11:23
Y'a pas une méthode pour les récupérer à partir du form1 et form2 ?
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
2 janv. 2017 à 16:16
Bonjour,

Pas directement.
Tu as plusieurs solutions de contournement en utilisant du javascript :

1 - Un seul formulaire. Au moment du clic sur le bouton, le "action" du formulaire est modifié selon le bouton cliqué.

2 - Dans le formulaire 3, rajoute deux champs de type hidden, nommés lab1 et lab2.
À la soumission du formulaire (<form... onsubmit=""), les valeurs des champs lab1 et lab2 du formulaire 1 sont copiés dans les champs lab1 et lab2 du formulaire 3.

3 - Comme le 2, mais la valeur des champs est copiée lorsque ceux-ci sont modifiés (avec des onchange sur les input)

Xavier
0