Mettre un résultat de requête dans la valeur par défaut d'un formulaire

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 : Mettre un résultat de requête dans la valeur par défaut d'un formulaire

par seïna » 14 août 2008, 00:20

Pour la requête, effectivement, expliqué ainsi ça a l'air plus simple et si logique… :)
Je vais essayer demain pour voir si j'arrive à le mettre en place mais en tout cas je vois!
Quant à ta requête, il faut que ce soit une chaine de caractère que php passera à mysql pour qu'il l'exécute. A toi donc de constituer la chaine en concatenant éventuellement des valeurs comme le last_insert_id()
Juste une question : je ne comprends pas vraiment le :"en concaténant le last_insert_id()". Désolée :oops: c'est sûrement une demande de précision débile. Le concaténer à quoi? Et pourquoi le concaténer?

par Ryle » 13 août 2008, 20:25

Tu mélanges un petit peu les choses.

PHP te permet de générer le code HTML qui est envoyé au navigateur afin qu'il puisse l'afficher à l'utilisateur. La première chose est donc de définir le code HTML que tu souhaites envoyer, en l'occurence, quelque chose du genre :

Code : Tout sélectionner

<label for="adressePostale">Adresse :</label> <input type="text" name="adressePostale" id="adressePostale" value="adresse par défaut"/>
Maintenant PHP va t'aider à générer dynamiquement le contenu du value :
<label for="adressePostale">Adresse :</label> 
<input type="text" name="adressePostale" id="adressePostale" value="<?php echo $adresse; ?>"/>
Il ne reste plus qu'à définir au préalable (donc avant :)) la valeur de la variable $adresse en la récupérant en base, exemple :
$sql = "SELECT .... "; // requete
$rs = mysql_query($sql); // exécution
if ($row = mysql_fetch_assoc($rs)) { // s'il y a un résultat, on le stocke dans $row
  $adresse = $row['champ_adresse']; // on récupère les valeur des champs
  ...
}
Quant à ta requête, il faut que ce soit une chaine de caractère que php passera à mysql pour qu'il l'exécute. A toi donc de constituer la chaine en concatenant éventuellement des valeurs comme le last_insert_id() :)

Mettre un résultat de requête dans la valeur par défaut d'un

par seïna » 13 août 2008, 15:47

Bonjour,
J'ai un très grand formulaire avec plein de champs différents reliés à des tables différents dans ma base de données. Sur quelques champs de ce formulaire (4 input de type text) je voudrais que la valeur par défaut qui s'affiche soit forcément ce qui est stocké dans la base de données dans les 4 colonnes correspondantes. Après, l'utilisateur pourra les modifier et dans ce cas écrasera ces données par celles qu'il rentre. Ces données sont très fixes et doivent être uniques : ce sont des infos qui ne devraient quasiment jamais changer donc c'est pour éviter qu'ils ne les rentrent pour rien sans fermer complètement la possibilité.
Est ce que je peux mettre dans mon formulaire :

Code : Tout sélectionner

<p> <label for="adressePostale">Adresse :</label> <input type="text" name="adressePostale" id="adressePostale" value="SELECT adressePostale FROM nom_table where idContact=last_insert_id()"/> </p>
J'utilise PDO avec des requêtes préparées à tous les autres endroits de ce programme mais là je ne sais pas si ça change quelque chose et je ne sais pas si c'est possible.
Je suis sûre que la clause where n'est pas correcte vu que c'est du php mais je ne sais pas comment faire. C'était pour vous donner l'idée du truc.
Mais je ne sais même pas non plus si je peux utiliser un select dans un value de formulaire
#-o