UPDATE des données dynamiques de formulaire vers bdd

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 : UPDATE des données dynamiques de formulaire vers bdd

Re: UPDATE des données dynamiques de formulaire vers bdd

par two3d » 25 mai 2022, 10:12

Salut, j'avais créé un tuto à ce sujet

Dans l'idée, c'est pareil que les checkbox, tu peut mettre un autre type d'input à la place.

Re: UPDATE des données dynamiques de formulaire vers bdd

par RSC2 » 25 mai 2022, 00:57

Bonsoir or 1,

Je suis entièrement d'accord sujr le principe. J'ai vu pas mal de suet ou l'on utilise un "name = valeur[]" mais concrètement sur le papier je ne vois pas comment l'écrire.
D'où ma demande d'aide.

Re: UPDATE des données dynamiques de formulaire vers bdd

par or 1 » 24 mai 2022, 23:37

l'idée est de ne pas avoir :
<td><input type="text" name="quantity" id="quantity"></td>
mais
<td><input type="text" name="quantity<?php echo $id; ?>"></td>

ensuite, en php, parcourir tous les champs de $_POST, extraire l'id et faire un update par variable.

UPDATE des données dynamiques de formulaire vers bdd

par RSC2 » 24 mai 2022, 23:30

Bonjour,

Je me creuse la tête depuis quelques jours sur le problème suivant :

J'ai un tableau listant des nom de légumes, ce tableau est variable (là il y a en 3; demain il peut y en avoir 25, puis 40 le sur-lendemain et ainsi de suite)

Sur chaque ligne, on a la possibilité de rentrer une valeur chiffre via un champ dédié

Le couple champ/légume est généré via ne boucle "while" (voir le code ci-dessous)

La BDD "legume" associé contient 3 colonnes :

1 - "ID" (numéroté 1,2,3 etc...)
2 - "quantity"
3 - "description"

Le but est que lorsque je clique sur "Valider", tous les chiffres inscrits dans les champ soit UPDATE dans la colonne "quantity" de ma table "legume"
En soit pour des champ "statique" dont le nom est fixe ce n'est pas compliqué. Mais la le nombre de champs peut varier.

J'ai deux codes, l'un me permet de générer mes lignes avec les champ, l'autre est supposé les UPDATE en base :

Code pour créer mes champs :
<?php
// Connexion à MySQL
$connexion=mysqli_connect("localhost", "root", "root", "legume");

if (!$connexion){ // Contrôler la connexion
    $MessageConnexion = die ("connexion impossible");
}

// Récupération de tous les enregistrements de la table disques
$recipes = $connexion->query('SELECT * FROM legume');
?>
<!DOCTYPE html>
<html>
	<head></head>
<body>
<form name="form1" method="post" action= "fonction.php" ?>
<input type="submit" name="Bouton" value="Valider">
<table>
	<?php
	while ($lines = mysqli_fetch_array($recipes)){ ?>				        
		<tr>
			<td><input type="text" name="quantity" id="quantity"></td>
			<td>[PHP]<?php echo $lines['description']; ?>[/PHP]</td>
		</tr>
	[PHP]<?php
	}
	?>[/PHP]
</table>
</form>
</body>
</html>

Code pour UPDATE les valeurs chiffres dans la colonne "quantity" (fonction.php)

<?php
// Connexion à MySQL
$connexion=mysqli_connect("localhost", "root", "root", "légume");

if (!$connexion){ // Contrôler la connexion
    $MessageConnexion = die ("connexion impossible");
}
else {
if(isset($_POST['Bouton'])){ // Autre contrôle pour vérifier si la variable $_POST['Bouton'] est bien définie
   $quantity=$_POST['quantity'];

   // Requête de MAJ
   $UpQuantity= "UPDATE choice SET quantity = $quantity WHERE ID = ?";

   // Exécution de la requête
   mysqli_query($connexion, $UpQuantity) or die('Erreur SQL !'.$UpQuantity.'<br>'.mysqli_error($connexion));
}
}
echo "<p style='color:purple'>Enregistrement réussi !</p>";
?>

<p><a href="Accueil.php">Retour à l'accueil</a></p>

En vous remerciant par avance de votre aide.