injecter valeur d'une bdd dans 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 : injecter valeur d'une bdd dans un formulaire

Re: injecter valeur d'une bdd dans un formulaire

par Odul » 26 mars 2019, 17:07

Merci je vais aller dans ce sens, je suis pas encore à l'aise avec le traitement de l'url.. alors c'est bien que ça arrive maintenant...

Re: injecter valeur d'une bdd dans un formulaire

par Spols » 26 mars 2019, 14:35

tu vérifie $_POST['id'] et tu l'utilise dans ta requète or tu ne le défini pas dans ton formulaire, tu défini nom, prenom et biographie.

pareil pour $_POST['ajax']

Il faut modifier ta requète pour qu'elle recherche par nom et/ou prenom d'auteur ou par biographie (plus complex, je ne sais pas ce que tu as mis dans ce champs.

si ton lien pointe vers supprimeElt.php par exemple tu ne pourras pas recupérer les info qu'il te faut.
Il faut passer une élément dans ton url et le récupèrer par $_GET
exemple
supprime.php?livre_id=123
$livre_id = $_GET['livre_id'];//$livre_id vaut désormais 123

Re: injecter valeur d'une bdd dans un formulaire

par Odul » 26 mars 2019, 13:45

j'ai fait cela, la variable, $plus devrait s'afficher… mais non :
<form method="post" action="modifiedElt.php" id="modifier">

  <input tabindex="1" type="text" id="nom" name="nom" value="<?php if(isset($_POST['nom'])) {echo $_POST['nom'];} ?>"  class="champ"/>

  <input tabindex="2" type="text" id="prenom" name="prenom" class="champ" value="<?php if(isset($_POST['prenom'])) {echo $_POST['prenom'];} ?>" />

  <textarea tabindex="3" id="biographie" name="biographie" rows=10 cols=55 value="<?php if(isset($_POST['biographie'])) {echo $_POST['biographie'];} ?>" /></textarea>

  <input type="submit" id="valider" value="Envoyez"/>

</form>


<?php



require('connectEssai.php');

$plus = '';
if(isset($_POST['id']))
{
$req=$bdd->prepare('SELECT nom, prenom, biographie FROM auteurs WHERE id = ?');
$req->execute(array($_POST['id']));

	while($donnees=$req->fetch())
		{
			$plus .= '<p class="bio"><strong>' . htmlspecialchars($donnees['prenom']) . ' ' . htmlspecialchars($donnees['nom']) . '</strong> :<br/> ' . htmlspecialchars($donnees['biographie']) . '<a class="modif" href="modified.php"><img class="roue" src="assets/css/modif.png" alt="modif"/></a><a class="trash" href="supprimeElt.php"><img class="poubelle" src="assets/css/trash.png" alt="poubelle"/></a></p>';
		}
$req->closeCursor();
}


 if(!empty($_POST['AJAX'])) {
			print $plus;
			die;
		 }


   ?>

Re: injecter valeur d'une bdd dans un formulaire

par Spols » 26 mars 2019, 12:50

Commence par le html que tu veux obtenir,

Ensuite utilise le php pour le produire avec une boucle pour afficher chaque ligne de tableau par exemple.

Alors aprés cela tu peux remplacer ta boucle par la boucle de ta requète et récupèré les champs voulu pour les injecter dans le html.

montre nous un peu de code pour qu'on puisse t'aiguiller

injecter valeur d'une bdd dans un formulaire

par Odul » 26 mars 2019, 12:40

Bonjour,

je travaille actuellement sur une bdd qui me permet actuellement d'enregistrer des livres (car je lis bcp) et de les consulter sur un back office fait maison.
Maintenant j'aimerais pouvoir modifier et/ou supprimer des lignes.(cela me permet de monter en compétence en php, enfin quand ça marche)
Mais pour l'instant j'ai fais choux blanc.

Ma question est la suivante, comment injecter le résultat de ma requête sql dans les champs du formulaire de mon back office ?

Cordialement

Odul