Valeur dynamique dans un champ de texte ...

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 : Valeur dynamique dans un champ de texte ...

par 3LpH4Ri0N » 14 déc. 2005, 21:21

NOn c'est réglé, j'avais une petite erreur dans ma requête :)
Merci

par Cyrano » 13 déc. 2005, 23:51

... cela ne fonctionne pas...
Ça ne m'avance pas des masses pour te donner une piste de solution: Il serait utile de me préciser ce que tu obtiens en pointant sur les points que tu attends avec une valeur différente.

Es-tu d'abord sûr que le retour de MySQL contient bien les données attendues par exemple ?

Sinon, as-tu des messages d'erreurs et le cas échéant, lesquels ?

par 3LpH4Ri0N » 13 déc. 2005, 23:31

là j'ai essayé sur un truc tout simple (pour me tester)
<? 
//Infos de connexion
require ('_files/_db/config.php');
//Requête
$req = mysql_query("SELECT manager,leader,membre2,membre3,membre4,membre5 from lao_teams
WHERE nom = '". $_SESSION['team2'] ."'") or die(mysql_error());
//Conversion vers contenu 
while($contenu = mysql_fetch_array ($req))
{
?>
<?php echo $contenu['manager']; ?>
			</td>
            </tr>
            <tr>
              <td class="col1"><span class="Style5">Leader : </span></td>
              <td><? echo $contenu['leader']; ?></td>
            </tr>
            <tr>
              <td class="col1"><span class="Style5">Membres : </span></td>
              <td><? echo $contenu['membre2']; ?></td>
            </tr>
            <tr>
              <td class="col1">&nbsp;</td>
              <td><? echo $contenu['membre3']; ?></td>
            </tr>
            <tr>
              <td class="col1">&nbsp;</td>
              <td><? echo $contenu['membre4']; ?></td>
            </tr>
            <tr>
              <td class="col1">&nbsp;</td>
              <td><? echo $contenu['membre5'];
					}
					//je referme la connexion
					mysql_close(); ?>
et cela ne fonctionne pas... je n'ai pas du comprendre alors :(

par 3LpH4Ri0N » 13 déc. 2005, 22:45

Okay je prend note, merci beaucoup pour ton aide, bonne soirée

par Cyrano » 13 déc. 2005, 22:26

Il faut procéder avec ordre. En premier lieu, respecter la syntaxe HTML : la balise <form> n'a rien à faire entre <table> et <tr> > soit ton formulaire est dans une cellule, soit il englobe tout le tableau.

Ensuite, tu dois créer le début de la structure du tableau avant ta boucle, la refermer après, et à l'intérieur, tu mets les éléments qui contiendront ls données récupérées. Ce qui donnerait quelque chose comme ceci:
<form action="_files/_db/modifier_team.php" name="form1" method="post" >
  <table id="container" cellspacing="0" cellpadding="0">
    <tr>
      <td class="titre">&nbsp;</td>
      <td id="skyscraper">&nbsp;</td>
    </tr>
    <tr>
      <td class="content">
        <table width="100%" border="0" cellspacing="0" cellpadding="4" class="address">
<?php
//Infos de connexion
require ('_files/_db/config.php');
//Requête
$req = mysql_query("SELECT id, nom, tag, devise, web FROM lao_teams
WHERE nom = '". $_SESSION['team2'] ."'") or die(mysql_error());
//Conversion vers contenu
while($contenu = mysql_fetch_array ($req))
{
?>
          <tr>
            <td class="col1">Id : </td>
            <td><?php echo $contenu['id']; ?>
            </td>
          </tr>
          <tr>
            <td class="col1">Nom : </td>
            <td><input name="nom2" type="text" class="field" value="<? echo $contenu['nom']; ?>" id="nom2" maxlength="25" /></td>
          </tr>
          <tr>
            <td class="col1">Tag : </td>
            <td><input name="tag" type="text" class="field" id="tag" value="<?php echo($contenu['tag']); ?>" maxlength="128" /></td>
          </tr>
          <!-- etc... -->
<?php
}
//je referme la connexion
mysql_close();
?>

par 3LpH4Ri0N » 13 déc. 2005, 22:15

oui j'avoue que j'ai écrit ca vire, a ce point la je suis d'accord mais en fait, je ne sais pas trop comment mettre mon
//Conversion vers contenu 
while($contenu = mysql_fetch_array ($req)){ 
} 
et quand ouvrir et fermer les { -> en bref je ne sais pas trop comment structurer le tout car
je voudrais avoir ca (ce n'est que le début) :
<table id="container" cellspacing="0" cellpadding="0">
          <form action="_files/_db/modifier_team.php" name="form1" method="post" >
            <tr>
              <td class="titre">&nbsp;</td>
              <td id="skyscraper">&nbsp;</td>
            </tr>
            <tr>
              <td class="content"><table width="100%" border="0" cellspacing="0" cellpadding="4" class="address">
                  <tr>
                    <td class="col1">Id : </td>
<td><?
//Infos de connexion
require ('_files/_db/config.php');
//Requête
$req = mysql_query("SELECT id,nom,tag,devise,web from lao_teams
WHERE nom = '". $_SESSION['team2'] ."'") or die(mysql_error());
//Conversion vers contenu 
while($contenu = mysql_fetch_array ($req)){
echo $contenu[id];
}
//je referme la connexion
mysql_close();
?></td>
                  </tr>
                  <tr>
                    <td class="col1">Nom  : </td>
                    <td><input name="nom2" type="text" class="field" value="<? echo $contenu['id']; ?>" id="nom2" maxlength="25" /></td>
                  </tr>
                  <tr>
                    <td class="col1">Tag : </td>
                    <td><input name="tag" type="text" class="field" id="tag" value="" maxlength="128" /></td>
[...]
Je ne sais pas comment faire...

par Cyrano » 13 déc. 2005, 22:08

Essaye en remplçant $contenu[nom] par $contenu['nom'] : en ne mettant pas les apostrophes (tu pourrais aussi utiliser des guillemets), PHP interprête l'index comme une constante dont la valeur est inexistante.

Valeur dynamique dans un champ de texte ...

par 3LpH4Ri0N » 13 déc. 2005, 22:05

Bonsoir,
Je voudrais que mes managers d'équipes puissent modifier les infos de leurs équipes.
Afin d'éviter qu'ils n'aient à tout retaper, je voudrais que les valeurs soient déja dans les champs de texte et donc qu'ils ne changent que qu'ils le désire.
Pour aller chercher mes données j'utilise :
<?
//Infos de connexion
require ('_files/_db/config.php');
//Requête
$req = mysql_query("SELECT nom from lao_teams
WHERE nom = '". $_SESSION['team2'] ."'") or die(mysql_error());
//Conversion vers contenu 
while($contenu = mysql_fetch_array ($req)){
}
//je referme la connexion
mysql_close();
?>
Donc je voudrais que la valeur $contenu[nom] apparaisse dans mon champ de texte comme valeur à défaut, soit quelque chose comme ceci :

Code : Tout sélectionner

<input name="web" type="text" class="field" id="web" value="$contenu[nom]" maxlength="128" />
Seulement je n'arrive pas à intégrer ma valeur.
De plus je souhaiterais ne faire qu'une seule requête car j'ai d'autre informations en plus du nom (tag, e-mail, web, etc)

Si vous savez comment faire ... :)
Merci d'avance