Récupération de variable php dans une requête

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 : Récupération de variable php dans une requête

par TheOwner » 21 avr. 2009, 17:11

Bon j'ai opté pour une présentation simplifié
$connection = odbc_connect("BDDSTOCK"," "," "); //connexion à ma base
?>
<form method="post" id="getnumprod" target="_self"> //formulaire qui sert à recup la valeur du numéro produit
<select name="listeprod" id="listeprod" size="4" onChange="document.forms['getnumprod'].submit();"> //fonction d'envoi automatique du formulaire par un clic
<?  $requête = "select PROD_NUM from produit;";
	$resultat = odbc_do($connection,$requête);
 	$ligne = odbc_fetch_array($resultat);
  while($ligne)
  {
    echo '<option selected value = "' . $ligne["PROD_NUM"] . '">'.$ligne["PROD_NUM"].'</option>'; //création de la liste déroulante
    $ligne = odbc_fetch_array($resultat);
  }?>
</select></form>

<?

$requête="select PROD_NUM,PROD_DESIGN,PROD_PRIX from produit where PROD_NUM='".$_POST['PROD_NUM']."';"; //je pense que l'erreur vient d'ici
  echo '<p /><table border=2 width=75%>';
  echo "<tr><th>NUMERO</th><th>DESIGNATION</th><th>PRIX</th></tr>";
  $resultat= odbc_do($connection, $requête);
  $ligne=odbc_fetch_array($resultat);
    echo "<tr><td>".$ligne['PROD_NUM']."</td><td>".$ligne['PROD_DESIGN']."</td><td>".$ligne['PROD_PRIX']."</td></tr>";
    echo "</table><p />";

Ici, la liste déroulante est contenu dans un formulaire qui est soumis lors d'un clic sur la liste.
Je voudrais grâce à la méthode "post" crée la variable de la table qui sera ensuite affiché dans un tableau juste en dessous un tableau simple a une seule ligne.
Mon code ci dessus renvoi ce message d'erreur :
Notice: Undefined index: PROD_NUM in [...]\modification.php on line 26
merci d'avance :)

par TheOwner » 20 avr. 2009, 15:43

Effectivement ça va beaucoup mieux merci beaucoup :)

par Ryle » 19 avr. 2009, 13:10

Tu mélanges le langage PHP et le Javascript... il ne suffit pas de mettre un "$" devant this.formulaire.champ pour en récupérer la valeur en php :)

PHP s'exécute côté serveur, il faut donc lui envoyer tes valeurs pour qu'il puisse faire son traitement et génerer le code html que le navigateur pourra afficher.

Le forum FAQ contient des explications détaillées sur ce sujet :
:arrow: Formulaires : Listes déroulantes dynamiques liées

Ceci devrait t'aider à y voir plus clair :)

Récupération de variable php dans une requête

par TheOwner » 19 avr. 2009, 12:48

Bonjour à tous, j'ai un petit soucis au niveau de ma requête, en effet je veux crée deux liste déroulante , une première qui sélectionne la table voulu et la seconde qui se sert de l'information de la première pour exécuter sa propre requête d'affichage de la table sélectionné dans la première liste (j'espère que j'ai été clair x))
Je précise aussi que pour vérifié que la valeur de la première liste est bien récupérer je l'affiche dans une zone de texte
Voici mon code actuel:

Code : Tout sélectionner

<script type="text/javascript"> function recup(source, destination) {var valeur = source.options[source.selectedIndex].value; if (valeur = '') return; destination.value = source.options[source.selectedIndex].value; source.selectedIndex = 0; } </script> <form name="formulaire"> <select style="color:#FFFFFF; background-color:#000000; border:#000000;" onchange="recup(this, this.form.resultat)"> <option value="" selected="selected"> Selectionner une table </option> <option value='CLIENT'><b>CLIENT</b></option> <option value='PRODUIT'><b>PRODUIT</b></option> <option value='COMMANDE'><b>COMMANDE</b></option> <option value='LIGNE_COMMANDE'><b>LIGNE_COMMANDE</b></option> <option value='STOCK'><b>STOCK</b></option> <option value='DEPOT'><b>DEPOT</b></option></select><br><br> <input type="text" style="color:#FFFFFF; background-color:#000000; border:#000000;" name="resultat" value="" /><br> <?php $connection = odbc_connect("BDDSTOCK","",""); echo "<select name = 'liste'> <option value = ''> --Choississez-- </option>"; $requete = "select * FROM '$this.form.resultat'"; $resultat = odbc_do($connection, $requete); while($row = odbc_fetch_row($resultat)) { echo "\t\t<option>".($row[0])."</option>\n"; } echo "</select>" ?> </FORM>



Merci d'avance pour votre aide