Page 1 sur 1

récupérer la valeur retourner par une liste déroulante en ph

Posté : 07 sept. 2009, 11:44
par memo
Salut ,
j'ai débuté en php.
j'ai crée en php une liste déroulante alimentés à partir de la base des données, et lorsque je choisis une code de service sa désignation et son type vont afficher automatiquement, jusqu'à maintenant ça va,mais le pbme que je ne sais pas comment récupérer la valeur retourné par la liste... :( :(
MERCI BIEN D'AVANCE
voilà le code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>

<script type="text/javascript">
<!--
var Ld1Id='';
var Ld2Id='';
var id_liste='';

function ValideLd2(val) 
{
	Ld1Id=val; //cde_sce
	id_liste='2';//Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
	var LD_URL = 'ValideLd2.php?Ld1='+Ld1Id;
	ObjetXHR(LD_URL)
	//objet XMLHttpRequest(LD_URL)
	// Réinitialisation de Ld3 si modification de LD1 après passage en Ld2
	if (Ld2Id!='') 
	{
	ValideLd3('');	
	}
}


function ObjetXHR(LD_URL) {
	//creation de l'objet XMLHttpRequest
	if (window.XMLHttpRequest) { // Mozilla,...
		xmlhttp=new XMLHttpRequest();
		if (xmlhttp.overrideMimeType) {
			xmlhttp.overrideMimeType('text/xml');
		}	
		xmlhttp.onreadystatechange=ChargeLd;
		xmlhttp.open("GET", LD_URL, true);
		xmlhttp.send(null);
	} else if (window.ActiveXObject) { //IE 
		xmlhttp=new ActiveXObject('Microsoft.XMLHTTP'); 
		if (xmlhttp) {
			xmlhttp.onreadystatechange=ChargeLd;
			xmlhttp.open('GET', LD_URL, true);
			xmlhttp.send(null);
		}
	}
	// Bouton non apparent car modification de LD1 ou Ld2
	//document.getElementById('buttons').style.display='none';
}

// fonction pour manipuler l'appel asynchrone
function ChargeLd() {
	if (xmlhttp.readyState==4) { 
		if (xmlhttp.status==200) { 
			//span id="niv2" ou "niv3"
			document.getElementById('niv'+id_liste).innerHTML=xmlhttp.responseText; 
			if (xmlhttp.responseText.indexOf('disabled')<=0) {
				//focus sur liste déroulante 2 ou 3
				document.getElementById('Liste'+id_liste).focus(); 
			}	
		}
	}
}

<!--function Affiche_Btn() {
	//document.getElementById('buttons').style.display='inline';
//}
</script>
<!--
<style>
#buttons {
	display: none;
}
</style>-->

<!--*************************************************************************************************************************
*****************************************************************************************************************************-->
<!--**********************************************************************
 *****************************************************************************************************************************************************--> <body>
  <?PHP
include 'Connexionbd.php';
$rq="Select * from service order by desig_sce;";

$result= mysql_query ($rq) or die('Erreur SQL !'.$rq.'<br>'.mysql_error());
$cde_sce = '<select name="Liste1" id="Liste1" size="1" onchange="ValideLd2(this[this.selectedIndex].value);">';
$cde_sce .= '<option selected value="">Choisir...</option>';
if (mysql_num_rows($result) != 0) {
	while ($row = mysql_fetch_row($result))
	 {  //$cde_sce =$row[0];
		$cde_sce .= '<option>'."'". $row[0] ."'".'</option>';
			 }
		$cde_sce .= '</select>';
		
		
  } 
else
 {
	$cde_sce = '<input id="size" type="text" size="10" value="Aucune valeur" disabled>';
}
//mysql_free_result($result);
mysql_close($connexion);
echo($cde_sce);
 ?> <span id="niv2"> <?php 
 include 'Connexionbd.php';

$cde_sce =''; //cde_sce cl de la liste droulante 1

if (isset($_GET['Ld1'])) {$cde_sce = $_GET['Ld1'];}

if ($cde_sce) 
{
      

	$rq="Select * from service where cde_sce=".$cde_sce." order by desig_sce;";
	
	$result= mysql_query ($rq) or die('Erreur SQL !'.$rq.'<br>'.mysql_error());//echo $Ld1_retour;
	
	//if (mysql_num_rows($result) != 0) 
	//{
		while ($row = mysql_fetch_row($result)) 
		{?>
			
			<input name="desig_sce" type="text" id="desig_sce" size="10" value="'.$row[1].'" readonly="readonly"/>
			
			
			Type de service: <input name="type_sce" type="text" id="type_sce" size="10" value="'.$row[2].'" readonly="readonly"/>  
			
		<?php 
	
	    } 
}
 ?>

 <!--****************************************************************************************************************************************
*********************************************************************************************************************************************--> 

</body>
</html>

Re: récupérer la valeur retourner par une liste déroulante en ph

Posté : 07 sept. 2009, 14:50
par monintranet
tu as deux méthodes :
- soit en javascript et ajax donc sans recharger la page
- soit via un $_POST ou un $_GET après soumission du formulaire

Re: récupérer la valeur retourner par une liste déroulante en ph

Posté : 07 sept. 2009, 15:18
par Invité
Merci pour votre réponse,
pour plus comprendre notre pbme,voilà j'explique encore,la page au dessus est exécuté bien mais lorsque je clique sur le boutton valider et après la chargement de la page ajoutcmde.php l'erreur suivant s'affiche:

Code : Tout sélectionner

Notice: Undefined index: cde_sce in C:\Program Files\EasyPHP 2.0b1\www\ajoutcmde.php on line 14 Notice: Undefined index: desig_sce in C:\Program Files\EasyPHP 2.0b1\www\ajoutcmde.php on line 15 Notice: Undefined index: type_sce in C:\Program Files\EasyPHP 2.0b1\www\ajoutcmde.php on line 16


et aussi le demande saisi ajouté à la base et les 3 champs cde_sce,desig_sce et type_sce restent vides....
:agenouille: Please help me :agenouille:

Re: récupérer la valeur retourner par une liste déroulante en ph

Posté : 07 sept. 2009, 16:05
par thehawk
On peux voir le code 'ajoutcmde.php' ?

Pour PHP il ne trouve pas tes champs en question , donc vérifie :
- La méthode employé pour l'envoi du formulaire POST ou GET.
- Les noms des champs (pour PHP Ajout et ajout sont différents)
- Les variables associés.

Pour voir ce qui rentre dans ton script ajoutcmde.php
ajoute le code suivant :
var_dump($_GET); // Si la méthode de soumission du formulaire est GET
var_dump($_POST); // Si la méthode de soumission du formulaire est POST
Bye Hawk

Re: récupérer la valeur retourner par une liste déroulante en ph

Posté : 08 sept. 2009, 10:02
par Invité
Bonjour,
Merci bien pour votre réponse,
voilà le code de ajoutcmde.php
<?php


   $cde_art=$_POST['cde_art'];
   $desig_art=$_POST['desig_art'];
   $cde_sce=$_POST['cde_sce'];
   $desig_sce=$_POST['desig_sce'];
   $type_sce=$_POST['type_sce'];
   $qte_dde=$_POST['qte_dde'];
   $resp_dde=$_POST['resp_dde'];
   $date_dde=$_POST['date_dde'];
 
    $connect= mysql_connect("localhost","root","") or die('erreur de connexion');
    mysql_select_db("gestion_stock") or die('base est introuvable');
	
 
   $qart="select * from demande where cde_art ='$cde_art' and cde_sce ='$cde_sce' and date_dde ='$date_dde'";
   $ajart=mysql_query($qart)or die('erreur sql'.$qart.'<br>'.mysql_error());
   
   if((mysql_num_rows($ajart))!=0)
    { include("bcmde.php");
	  echo'<script language = javascript> alert ("cette demande existe déjà!!!");</script>';
	  exit();}
  else
  { $connect= mysql_connect("localhost","root","") or die('erreur de connexion');
   mysql_select_db("gestion_stock") or die('base est introuvable');
 
    //ajout un article
	  $sql="insert into demande values('$cde_art','$desig_art','$cde_sce','$desig_sce','$type_sce','$date_dde','$qte_dde','$resp_dde')";
	  
	  // on insère les informations du formulaire dans la table 
       mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());  
	   
	   //
	      $art=mysql_query ("select * from article where cde_art ='$cde_art'") or die ('erreur sql'.'<br>'.mysql_error());
          $reslt= mysql_fetch_object($art);
	      $qt=mysql_query("update article set qte_st = ('$reslt->qte_st' - '$qte_dde') where cde_art = '$cde_art'") or die ('erreur sql'.'<br>'.    mysql_error());
	   
	    { include("bcmde.php");
    echo '<SCRIPT LANGUAGE = JavaScript >alert("La demande  est ajoutée"); </SCRIPT>';
	exit();
	}
    mysql_close();  // on ferme la connexion 
 
	  
  }
  
  
 ?>


Re: récupérer la valeur retourner par une liste déroulante en ph

Posté : 08 sept. 2009, 14:42
par Invité
=D> =D> ça va mon pbme est résolu après la modification suivante:
   $cde_sce=$_POST['Liste1'];
   $desig_sce=$_POST['Liste2'];
   $type_sce=$_POST['Liste3'];