Récupérer les valeurs d'un formulaire en php

Fermé
Samya - 24 juil. 2003 à 13:09
 kazi - 6 août 2003 à 15:59
Bonjour à tous,
j'aimerai savoir comment on peut récupérer la valeur d'un objet d'un formulaire. Je m'explique j'ai un formulaire qui contient deux radio boutons et selon ke l'on clique sur l'un ou sur l'autre on charge une liste dans un objet de type select. La liste est en fait un tableau crée dynamiquement dès l'ouverture de la page en accédant a la base de données. Je souhaiterai connaitre un moyen de récupérer l'élément ki a été choisi dans la liste en php en sachant qu'a la fin du formulaire je dois insérer cette valeur dans une base de données

17 réponses

Voila un bout de mon code, j'ai ajouté une action php lors de l'évènement onClick sur un des boutons, je sais pas si c correct, si qqn a une solution ...

La methode test : permet de créer dynamiquement le tableau pour alimenter l'objet select

<form method = "post" action="maquette.php" name="Type_Panne">

<p align="left">
Materiel <input type="radio" name="TypeP" value="Materiel" onClick="test('materiel'); <?$valeur_type = 'materiel';?>">

Logiciel <input type="radio" name="TypeP" value="Logiciel" onClick="test('logiciel'); <?$valeur_type = 'logiciel';?>">
</p>

<select name="Libelle" onClick="javascript:selection();">
<option>- - Choisir dans la liste - -</option>
</select>

...

<p> <input type="button" name="valide_typeP" value ="Ok" onClick="alert('valeur choisie = '+Libelle.value); alert('valeur2 choisie : '+TypeP.value);"> </p>

La premiere valeur s'affiche correctement mais pas la seconde g le msg d'erreur suivant : undefined

J'ai pas envie d'utiliser un submit parceke ca me pose pb a l'affichage

merci d'avance
0
allo y a qqn ki peut m'aider ?????
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
24 juil. 2003 à 16:16
Renomme ta fonction "test" en "remplirSelect"... Tu pourrais avoir des problèmes. De mémmoire, "test" est un mot reservé.

Ensuite montre-nous l'ensemble de ton code (avec cette fameuse fonction.
0
Alors le code complet est le suivant :

<form method = "post" action="" name="Type_Panne">

<p align="left">  Matériel  
<input type="radio" name="TypeP" value="materiel" onClick="rempliSelect('materiel');">
     Logiciel
<input type="radio" name="TypeP" value="logiciel" onClick="rempliSelect('logiciel');">



<!-- ON REMPLIT LA LISTE DEROULANTE AVEC LES DIFFERENTS LIBELLES -->

  
<select name="Libelle" onClick="javascript:selection();">
<option>- - Choisir dans la liste - -</option>
</select>

<?
// On cherche les libéllés dans la base de données
include "connex.php";

$sql = 'SELECT * FROM Materiel;';
$query = mysql_query($sql) or die('Erreur : Exécution de la requete');

$i=0;
while($result=mysql_fetch_array($query,MYSQL_ASSOC)) {
$morc1[$i++] = $result['Libelle'];
}

$sql = 'SELECT * FROM Application;';
$query = mysql_query($sql) or die('Erreur : Exécution de la requete');

$j=0;
while($result=mysql_fetch_array($query,MYSQL_ASSOC)) {
$morc2[$j++] = $result['Libelle'];
}
mysql_close();


// On remplit deux tableaux avec les libéllés
echo "<script language=\"Javascript\">";
echo "function rempliSelect(valeur){";

echo "var libMateriel = new Array(".$i.");";
echo "var libLogiciel = new Array(".$j.");";

for($k=0; $k < $i; $k++)
echo "libMateriel[".$k."] = \"".$morc1[$k]."\";";

for($k=0; $k < $i; $k++)
echo "libLogiciel[".$k."] = \"".$morc2[$k]."\";";


echo "if(valeur.toLowerCase() == 'materiel')";
echo "tmp=libMateriel;";
echo "else tmp=libLogiciel;";

for($k=0; $k<$i; $k++)
{
echo "document.Type_Panne.Libelle.options[".$k."] = new Option();";
echo "document.Type_Panne.Libelle.options[".$k."].value = tmp[$k];";
echo "document.Type_Panne.Libelle.options[".$k."].text = tmp[$k];";
}

echo "}";
echo "</script>";

//=========== J'aimerai bien pouvoir faire ça ==========
//Test de la valeur selectionnée
if($_POST['Libelle']){
if(strtoupper($_POST['Libelle']) == "AUTRE")
include_once "ajout.php";
}
?>

   
<input type="button" name="valide_typeP" value ="Ok" onClick="if(Libelle.value =='AUTRE') alert('vous souhaitez ajouter un nouveau libelle'); <?include_once ajout.php;?>">
</p>
</form>


==========================================
dans le dernier objet je viens d'ajouter le include mais je sais pas si je peux faire ça ????

merci
0

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

Posez votre question
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
25 juil. 2003 à 12:06
A vue d'oeil, ça m'a l'air pas mal du tout...

Maintenant, peux-tu poster le code complet une fois généré (HTML+JavaScript sans PHP) histoire de pouvoir tester réellement le code.
Peux-tu aussi préciser le navigateur sur leque tu essaies ce code.

Je n'ai pas compris à quoi te servait le dernier include et pourquoi tu utilises include_once() plutôt que include(). (C'est un détail, mais include_once() s'utilisera pour incorporer des librairies, fonction, varaiable à ne définir qu'une fois alors que include() renvoit le code du fichier ajout.php sans réfléchir).
0
Je t'ai mis tout le code mais je te préviens il ya bcp de lignes de code et la j'ai fat une nouvelle version où g tout séparé, mais la je te donne le fichier complet :

<html>
<head>

<title> Maquette</title>

<script language="JavaScript">
<!--
function selection(){
// on récupére la valeur
alert('fonction selection');
//val = document.Type_Panne.Libelle.options[document.myform.Libelle.selectedIndex].value;
//alert("la valeur est : "+val);
}

function testerRadio(radio) {
for (var i=0; i<radio.length;i++) {
if (radio[i].checked) {
alert("Système = "+radio[i].value);
}
}
}

function validerF()
{
//alert("fonction validerF");

if((document.identif.NumAgent.value=='') || (document.identif.NumAgent.value=='0'))
{
alert("Le numéro d'agent est obligatoire.");
return false;
}
if(isNaN(document.identif.NumAgent.value))
{
alert("Le numero de l'agent doit être numérique.");
return false;
}
if(document.Renseigne.NetBios.value=='')
{
alert("La valeur du NetBios est obligatoire.");
return false;
}
if(document.Renseigne.Desc.value=='')
{
alert("La description de la panne est obligatoire.");
return false;
}
/*if(toLowerCase(document.Type_Panne.TypeP.value) == 'materiel')
{
if(document.Renseigne.NumUC.value == '')
{
alert('Le numero de l\'unité centrale doit être renseigné');
return false;
}
if(document.Renseigne.NumMat.value == '')
{
alert('Le numero de série du matériel doit être renseigné');
document.Renseigne.NumMat.value = form.NumUC.value;
return false;
}
}
*/
alert("Le formulaire va être validé");
//insertion de la demande dans la base de données

}//fin de la fonction

//-->
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000">

<!--<form method="post" name = "myform">-->


<!-- FICHE INTRANET POUR UNE DEMANDE D'INTERVENTION -->

<p align="center"><b>DEMANDE D'INTERVENTION</b></p>


<!-- RENSEIGNEMENT DU NUMERO DE LA DEMANDE -->

<p align="right"><i>  Numéro de la Demande</i> :
<!-- Incrémentation automatique du numéro de la demande -->
<?
//On récupère dans la base de données le dernier numéro de demande d'intervention
//On se connecte à la base
include "connex.php";

$sql = 'SELECT COUNT(NumDemande)+1 FROM Intervention;';
$query = mysql_query($sql) or die('Erreur : Exécution de la requete');
$data = mysql_fetch_array($query);
print("$data[0]");
mysql_close();
?>
</p>

<?
if ($NumAgent!=""){
include "connex.php";

$sql = "SELECT code_ges, porte, nom, prenom FROM Agent where num = $NumAgent;";

$query = mysql_query($sql) or die("traiteNumAgent : Erreur = Execution de la requete <br>".mysql_error());
//On récupère les résultats
if($data = mysql_fetch_array($query)){
$CodeService = $data[0];
$NumPorte = $data[1];
$NomAgent = $data[2];
$PrenomAgent = $data[3];
}
else
echo "verifNumAgent : Erreur = le numéro d'agent est incorrect<BR>";
}
?>


<!-- RENSEIGNEMENTS DU NUMERO D'AGENT, DU CODE DE SERVICE ET DU NUMERO DE PORTE -->

<form method = "post" name ="identif" action="maquette.php">

<p align="left">  Numéro d'Agent :
<input type="text" name="NumAgent" size="5" maxlength="5" value =<? echo $NumAgent; ?>>
     
<input type="submit" name="ValideNA" value="Ok">

 Code Service :
<input type="text" name="CodeService" size="4" maxlength="4" readOnly value = <?echo $CodeService;?> >
       Numéro Porte :
<input type="text" name="NumPorte" size="10" maxlength="10" readOnly value = <?echo $NumPorte;?>>

</p>
<p>
  Nom de l'agent : <? echo $NomAgent; ?>
  
Prénom de l'agent : <? echo $PrenomAgent; ?>
</p>
</form>




<!-- RENSEIGNEMENTS DE LA DATE ET DE L'HEURE -->
<p align="left">  
<?
$date = date("Y-m-d");
$heure = date("H:i");
echo "Date de la demande : $date. Heure de la demande $heure";
?>



<!-- RENSEIGNEMENTS DU TYPE DE LA PANNE ET DU LIBELLE -->


     </p>

<p align="left"><b>  TYPE DE LA PANNE</b></p>

<!-- Choix de la panne : au nveau du matériel ou au niveau des applications -->
<!-- Création des radiobutton Matériel et Logiciel -->
<form method = "post" action="" name="Type_Panne">

<p align="left">  Matériel  
<input type="radio" name="TypeP" value="Materiel" onClick="test('materiel');<?$valeur_type = 'materiel';?>">
     Logiciel
<input type="radio" name="TypeP" value="Logiciel" onClick="test('logiciel');<?$valeur_type = 'logiciel';?>">


<!-- ON REMPLIT LA LISTE DEROULANTE AVEC LES DIFFERENTS LIBELLES -->

  
<select name="Libelle" onClick="javascript:selection();">
<option>- - Choisir dans la liste - -</option>
</select>

<?
// On cherche les libéllés dans la base de données
include "connex.php";

$sql = 'SELECT * FROM Materiel;';
$query = mysql_query($sql) or die('Erreur : Exécution de la requete');

$i=0;
while($result=mysql_fetch_array($query,MYSQL_ASSOC)) {
$morc1[$i++] = $result['Libelle'];
}


$sql = 'SELECT * FROM Application;';
$query = mysql_query($sql) or die('Erreur : Exécution de la requete');

$j=0;
while($result=mysql_fetch_array($query,MYSQL_ASSOC)) {
$morc2[$j++] = $result['Libelle'];
}
mysql_close();


// On remplit deux tableaux avec les libéllés
echo "<script language=\"Javascript\">";
echo "function test(valeur){";

echo "var libMateriel = new Array(".$i.");";
echo "var libLogiciel = new Array(".$j.");";

for($k=0; $k < $i; $k++)
echo "libMateriel[".$k."] = \"".$morc1[$k]."\";";

for($k=0; $k < $i; $k++)
echo "libLogiciel[".$k."] = \"".$morc2[$k]."\";";


echo "if(valeur.toLowerCase() == 'materiel')";
echo "tmp=libMateriel;";
echo "else tmp=libLogiciel;";

for($k=0; $k<$i; $k++)
{
echo "document.Type_Panne.Libelle.options[".$k."] = new Option();";
echo "document.Type_Panne.Libelle.options[".$k."].value = tmp[$k];";
echo "document.Type_Panne.Libelle.options[".$k."].text = tmp[$k];";
}

echo "}";
echo "</script>";
?>
</form>

  
<?
//Test de la valeur selectionnée
$sql ="";

$LibSelect = $_POST['Libelle'];

if(strtoupper($LibSelect) == "AUTRE"){
include_once "ajout.php";
}
?>
</p>




<!-- RENSEIGNEMENTS CONCERNANT LE MATERIEL -->

<form name = "Renseigne" method ="post">


<p><b>   RENSEIGNEMENTS CONCERNANT LE MATERIEL</b></p>
<p>  Numéro Série de l'Unité Centrale :
<input type="text" name="NumUC" size="17" maxlength="17" value ="<?echo $numUC;?>">
    Numéro Série du Matériel Concerné :
<input type="text" name="NumMat" size="17" maxlength="17" value ="<?echo $numMat;?>">
</p>
<p>  NetBios du PMF :
<input type="text" name="NetBios" size="8" maxlength="8" value ="<?echo $netBios;?>">
</p>


<!-- RENSEIGNEMENTS CONCERNANT LA PANNE -->

<p><b>  DESCRIPTION DE LA PANNE</b></p>
<p>
<textarea name="Desc" cols="70" rows="3"></textarea>
</p>


<p>
<center>

<input type="submit" name="BValide" value=" Ajouter " onClick="if(validerF()){ history.go('http://127.0.0.1/essai/gestInterv/index.php');} else{ alert('on est dans le else'); window.history.back();}">
<input type="button" name="BFin" value="Terminer" onClick="history.go('http://127.0.0.1/essai/gestInterv/index.php');">
</center>
</p>
<!-- Création de la demande dans la base de données -->
<?
//On se connecte à la base
include "connex.php";

// On prépare l'insertion de la date dans la base de données
$tok = strtok($date,"-");
while($tok) {
$aux_date = $aux_date.$tok;
$tok = strtok("-");
}
$tok = strtok($heure,":");
while($tok) {
$aux_date = $aux_date.$tok;
$tok = strtok(":");
}


/*
//test sur le libellep si vaut AUTRE alors on insere le nouveau libelle sinon on insere le libelle choisi
$sql = "INSERT into Intervention values(0, 'libelle', $auxdate, 'type', 'numserieuc', 'numseriemat', 'netbios', 'libellep', 'commentaire','non affecte',$NumAgent);";

$query = mysql_query($sql) or die('');
echo '<script language="Javascript">';
echo "alert('insertion dans la base');";
echo "</script>";*/
?>
</form>
</body>
</html>

J'ai essayé un nouveau truc aujourd'hui : au lieu de mettre des boutons submit g mis des images et c'est mieux et je récupére dans un tableau toutes les valeurs ke je veux insérer dans ma base de données. mais toutes les valeurs ne sont pas renseignées (je l'ai testé avec la séparation des fichiers et je dois avouer ke je ne l'ai pas testé avec celui la) alors qu'elles sont reconnues dans chq fichier
0
au fait merci
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
25 juil. 2003 à 15:37
Oops... Ce n'est pas ça que je voulais ;-)

Je voudrais le code HTML Source... Celui en faisant "Afficher la source" (bouton droit du de la souris sous PC).

Je n'ai pas ta base donc je ne peux pas tester le PHP.

Donc si tu me donnes juste le source HTML + JavaScript, je pourrais le tester en local avec un fichier .htm
0
<html>
<head>

<title> Maquette</title>

<script language="JavaScript">
<!--
function selection(){
// on récupére la valeur
alert('fonction selection');
//val = document.Type_Panne.Libelle.options[document.myform.Libelle.selectedIndex].value;
//alert("la valeur est : "+val);
}

function testerRadio(radio) {
for (var i=0; i<radio.length;i++) {
if (radio[i].checked) {
alert("Système = "+radio[i].value);
}
}
}

function validerF()
{
//alert("fonction validerF");

if((document.identif.NumAgent.value=='') || (document.identif.NumAgent.value=='0'))
{
alert("Le numéro d'agent est obligatoire.");
return false;
}
if(isNaN(document.identif.NumAgent.value))
{
alert("Le numero de l'agent doit être numérique.");
return false;
}
if(document.Renseigne.NetBios.value=='')
{
alert("La valeur du NetBios est obligatoire.");
return false;
}
if(document.Renseigne.Desc.value=='')
{
alert("La description de la panne est obligatoire.");
return false;
}
/*if(toLowerCase(document.Type_Panne.TypeP.value) == 'materiel')
{
if(document.Renseigne.NumUC.value == '')
{
alert('Le numero de l\'unité centrale doit être renseigné');
return false;
}
if(document.Renseigne.NumMat.value == '')
{
alert('Le numero de série du matériel doit être renseigné');
document.Renseigne.NumMat.value = form.NumUC.value;
return false;
}
}
*/
alert("Le formulaire va être validé");
//insertion de la demande dans la base de données

}//fin de la fonction

//-->
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000">

<!--<form method="post" name = "myform">-->


<!-- FICHE INTRANET POUR UNE DEMANDE D'INTERVENTION -->

<p align="center"><b>DEMANDE D'INTERVENTION</b></p>


<!-- RENSEIGNEMENT DU NUMERO DE LA DEMANDE -->

<p align="right"><i>  Numéro de la Demande</i> :
<!-- Incrémentation automatique du numéro de la demande -->
5</p>




<!-- RENSEIGNEMENTS DU NUMERO D'AGENT, DU CODE DE SERVICE ET DU NUMERO DE PORTE -->

<form method = "post" name ="identif" action="maquette.php">

<p align="left">  Numéro d'Agent :
<input type="text" name="NumAgent" size="5" maxlength="5" value =>
     
<input type="submit" name="ValideNA" value="Ok">

 Code Service :
<input type="text" name="CodeService" size="4" maxlength="4" readOnly value = >
       Numéro Porte :
<input type="text" name="NumPorte" size="10" maxlength="10" readOnly value = >

</p>
<p>
  Nom de l'agent :   
Prénom de l'agent : </p>
</form>




<!-- RENSEIGNEMENTS DE LA DATE ET DE L'HEURE -->
<p align="left">  
Date de la demande : 2003-07-25. Heure de la demande 16:01


<!-- RENSEIGNEMENTS DU TYPE DE LA PANNE ET DU LIBELLE -->


     </p>

<p align="left"><b>  TYPE DE LA PANNE</b></p>

<!-- Choix de la panne : au nveau du matériel ou au niveau des applications -->
<!-- Création des radiobutton Matériel et Logiciel -->
<form method = "post" action="" name="Type_Panne">

<p align="left">  Matériel  
<input type="radio" name="TypeP" value="Materiel" onClick="test('materiel');">
     Logiciel
<input type="radio" name="TypeP" value="Logiciel" onClick="test('logiciel');">


<!-- ON REMPLIT LA LISTE DEROULANTE AVEC LES DIFFERENTS LIBELLES -->

  
<select name="Libelle" onClick="javascript:selection();">
<option>- - Choisir dans la liste - -</option>
</select>

<script language="Javascript">function test(valeur){var libMateriel = new Array(12);var libLogiciel = new Array(24);libMateriel[0] = "AUTRE";libMateriel[1] = "CLAVIER";libMateriel[2] = "DOUCHETTE";libMateriel[3] = "ECRAN";libMateriel[4] = "IMPRIMANTE";libMateriel[5] = "LECTEUR CARTE AGENT";libMateriel[6] = "LECTEUR DE CR ROM";libMateriel[7] = "LECTEUR DE DISQUETTE";libMateriel[8] = "LECTEUR VITALE";libMateriel[9] = "SCANNER";libMateriel[10] = "SOURIS";libMateriel[11] = "UC";libLogiciel[0] = "AIDE FI";libLogiciel[1] = "AUTRE";libLogiciel[2] = "BIBLIOTHEQUE COURRIER";libLogiciel[3] = "CALENDAR";libLogiciel[4] = "COPERNIC";libLogiciel[5] = "CURES THERMALES";libLogiciel[6] = "EXCEL";libLogiciel[7] = "FAC";libLogiciel[8] = "GESTOR";libLogiciel[9] = "GITE";libLogiciel[10] = "IMAGE";libLogiciel[11] = "INTRANET";if(valeur.toLowerCase() == 'materiel')tmp=libMateriel;else tmp=libLogiciel;document.Type_Panne.Libelle.options[0] = new Option();document.Type_Panne.Libelle.options[0].value = tmp[0];document.Type_Panne.Libelle.options[0].text = tmp[0];document.Type_Panne.Libelle.options[1] = new Option();document.Type_Panne.Libelle.options[1].value = tmp[1];document.Type_Panne.Libelle.options[1].text = tmp[1];document.Type_Panne.Libelle.options[2] = new Option();document.Type_Panne.Libelle.options[2].value = tmp[2];document.Type_Panne.Libelle.options[2].text = tmp[2];document.Type_Panne.Libelle.options[3] = new Option();document.Type_Panne.Libelle.options[3].value = tmp[3];document.Type_Panne.Libelle.options[3].text = tmp[3];document.Type_Panne.Libelle.options[4] = new Option();document.Type_Panne.Libelle.options[4].value = tmp[4];document.Type_Panne.Libelle.options[4].text = tmp[4];document.Type_Panne.Libelle.options[5] = new Option();document.Type_Panne.Libelle.options[5].value = tmp[5];document.Type_Panne.Libelle.options[5].text = tmp[5];document.Type_Panne.Libelle.options[6] = new Option();document.Type_Panne.Libelle.options[6].value = tmp[6];document.Type_Panne.Libelle.options[6].text = tmp[6];document.Type_Panne.Libelle.options[7] = new Option();document.Type_Panne.Libelle.options[7].value = tmp[7];document.Type_Panne.Libelle.options[7].text = tmp[7];document.Type_Panne.Libelle.options[8] = new Option();document.Type_Panne.Libelle.options[8].value = tmp[8];document.Type_Panne.Libelle.options[8].text = tmp[8];document.Type_Panne.Libelle.options[9] = new Option();document.Type_Panne.Libelle.options[9].value = tmp[9];document.Type_Panne.Libelle.options[9].text = tmp[9];document.Type_Panne.Libelle.options[10] = new Option();document.Type_Panne.Libelle.options[10].value = tmp[10];document.Type_Panne.Libelle.options[10].text = tmp[10];document.Type_Panne.Libelle.options[11] = new Option();document.Type_Panne.Libelle.options[11].value = tmp[11];document.Type_Panne.Libelle.options[11].text = tmp[11];}</script></form>

  
</p>




<!-- RENSEIGNEMENTS CONCERNANT LE MATERIEL -->

<form name = "Renseigne" method ="post">


<p><b>   RENSEIGNEMENTS CONCERNANT LE MATERIEL</b></p>
<p>  Numéro Série de l'Unité Centrale :
<input type="text" name="NumUC" size="17" maxlength="17" value ="">
    Numéro Série du Matériel Concerné :
<input type="text" name="NumMat" size="17" maxlength="17" value ="">
</p>
<p>  NetBios du PMF :
<input type="text" name="NetBios" size="8" maxlength="8" value ="">
</p>


<!-- RENSEIGNEMENTS CONCERNANT LA PANNE -->

<p><b>  DESCRIPTION DE LA PANNE</b></p>
<p>
<textarea name="Desc" cols="70" rows="3">
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
25 juil. 2003 à 16:21
Je viens d'essayer sur le navigateur Mozilla et ton code fonctionne parfaitement :-)
0
ok merci
0
salut, en fait le pb ke g se situe au niveau de l'affichage : lorsque je clique sur un bouton submit il me réaffiche la page en ne gardant pas ce ki a été saisit par l'utilisateur avant bien ke je les récupère dans mon fichier avec $_POST['Nom_Objet']
0
C'est un peu chaud...
Lors du rechargement de la page, il faut que tu regénères la liste en fonction du type (Logiciel ou Matériel) et que tu selectionnes ensuite l'options récupéré
document.formulaire.liste.selectedIndex = indice;
0
Est ce ke tu peux etre un peu plus précis. J'ai essayé un truc par rapport a ce ke t'as écrit dernièrement :
Dans le formulaire qui contient l'objet de type select l'évènement OnLoad et ensuite ce ke tu m'as indiqué mais g pa réussit a le faire fonctionner :
<form method = "post" action="controle_file2.php?$ValTypePanne" name="Type_Panne" onLoad="document.Type_Panne.Libelle.selectedIndex;">

MErci
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
28 juil. 2003 à 16:53
Pour savoir le type de la liste, fais appel au champ TypeP.

Pour le reste de ton code, il manque l'indice :
onLoad="document.Type_Panne.Libelle.selectedIndex = 1;

0
J'ai fait ca dans l'objet select : en fait je récuperes dans une variable indice l'element ki a été selectionné lors du clic :
<select name="Libelle" onClick="var indice = document.Type_Panne.Libelle.selectedIndex;">

et dans la form : <form method = "post" action="controle_file2.php?$ValTypePanne" name="Type_Panne" onLoad="document.Type_Panne.Libelle.options[document.Type_Panne.Libelle.selectedIndex] = indice; alert('valeur de indice = '+indice);">

mais ca ne marche pas !!!
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
28 juil. 2003 à 17:44
Crée un champ hidden : Type_Indice et affecte le comme ceci :
<select name="Libelle" onChange="this.form.Type_Indice.value = this.form.Libelle.selectedIndex;">


Et ensuite, une fois le formulaire enregistré, tu récupères $Type_Indice après la génération de la liste en fonction du $TypeP :
onLoad="document.Type_Panne.Libelle.selectedIndex = $Type_Indice;
0
Désolée de te déranger encore une fois, mais ca ne marche pas. J'ai testé en affichant un msg mais il ne s'affiche pas je pense ke c'est du a l'évènement onLoad ? Qu'est ce ke tu en penses ?
0
Je viens de tester l'évènement mais avec une image et le msg s'affiche mais il ne prends pas en compte ce qui suit, apparemment ca ne lui plait pas. J'ai fait ça :

<input type="image" src="../images/bouton_recherche.gif" Border=0 name="valide" title="Valider" onLoad="alert('onload debut'); document.Type_Panne.Libelle.selectedIndex = $Type_Indice; alert('onLoad fin');">

Il m'affiche uniquement le premier msg et pas le second

et dans l'objet de type select j'ai :
<select name="Libelle" onClick="this.Type_Panne.Type_Indice.value = this.Type_Panne.Libelle.selectedIndex;">

T'as une idée
0
En fait il ne reconnait pas la valeur de Type_Indice en php mais en javascript on a la bonne valeur. Par contre meme en faisant $Type_Indice ou $_POST['Type_Indice'] ou encore en passant la valeur en parametre du formulaire, je n'arrive pas a recupérer la valeur de Type_Indice
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
29 juil. 2003 à 10:10
Bizarre...

Le onload doit se placer dans la balise <BODY> (mais il faut avoir généré la liste en JavaScript au préalable).

Pour récupérer la valeur de Type_Indice, utilise la variable $_POST[] --->
$_POST['Type_Indice']


Vérifie que tu as bien déclaré le champ hidden "Type_Indice" et qu'il est bien entre les balises <FORM> et </FORM>
0
on peut le faire en javascript non ? Ca devrait marché ça :

<body bgcolor="#FFFFFF" text="#000000" onLoad="alert('indice coché = '+document.Type_Panne.Type_Indice.value); document.Type_Panne.Libelle.selectedIndex = document.Type_Panne.Type_Indice.value; alert('apres affectation');">

En tout cas il m'affiche les deux msg mais ca marche pas
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
29 juil. 2003 à 10:38
Je n'ai pas à quel moment tu appelais la fonction de génération de la liste (rempliSelect()).

Si tu ne l'as pas appellé par défaut, appelle la dans le onload avec le paramètre TypeP :
<body onload="...rempliSelect('<?php echo $_POST["TypeP"]; ?>'); document.Type_Panne.Libelle.selectedIndex = '<?php echo $_POST["Type_Indice"]; ?>'; ...">

0
Je génère la liste des que l'on clique sur l'un des deux boutons. Le pb c'est ke je ne récupere pas la valeur de TypeP parcekil est dans un fichier différent ke celui du body et ke dans ce fichier(la ou se trouve TypeP) il y a un form et une action vers un autre fichier.
Par contre g tenté de le faire en javascript et ca me donne :

<body bgcolor="#FFFFFF" text="#000000" onLoad="alert('on y est '); var ind = document.Type_Panne.Type_Indice.value; alert('valeur indice coché = '+ind); document.Type_Panne.Libelle.options[ind].selected = true; alert('on load fin');">

mais il y a un probleme a l'instruction :
document.Type_Panne.Libelle.options[ind].selected = true;
pourtant il m'affiche bien la valeur de ind ???
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
29 juil. 2003 à 11:34
Essaie ça :
document.Type_Panne.Libelle.selectedIndex = ind; 
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
29 juil. 2003 à 12:45
Au passage, quelles sont tes erreur JavaScript ?
0
je sais pas puisken fait il n'affiche pas de msg d'erreurs mais en mettant des alert avant et apres l'instruction je peux savoir s'il l'a exécuté ou pas et donc s'il y a une erreur.
0
MERCI, ça marche en fait g ajouté des tests dans le body

<body bgcolor="#FFFFFF" text="#000000" onLoad="if(document.Type_Panne.ValTypePanne.value == 1) rempliSelect('materiel'); if(document.Type_Panne.ValTypePanne.value == 2) rempliSelect('logiciel'); var ind = document.Type_Panne.Type_Indice.value; document.Type_Panne.Libelle.selectedIndex = ind;">

parcequ'au départ TypeP n'a pas encore de valeur (il n'est pas coché par défaut) c pour ça ke ca marchait pas tout a l'heure

merci, merci, merci 1000fois
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
29 juil. 2003 à 14:08
Tant mieux ;-)
0
je veux utiliser une fonction dont les paramètres sont des valeurs d'un formulaire, je ne sais pas comment les écrire.
alors si quelqu'un peut m'aider, ça serait sympa.
0