[RESOLU] Form PHP HTML

Petit nouveau ! | 6 Messages

13 sept. 2018, 17:25

Bonjour à tous,

Dans un premier temps, je tenais à remercier ceux qui ont conçu ce site, il est vraiment top =D>

Néanmoins je bute sur quelque chose (surement un manque d'information de ma part sur le sujet). Le sujet traite de PHP,HTML et de MYSQL.

Je détiens une page web HTML ou lorsque des gens remplissent un <select> et clique sur un bouton cela envoie des données sur une base de donnée. Mon problème est que je souhaiterai relié mon HTML a mon PHP afin que cela balance sur ma table MYSQL.

je vous mets tout les codes nécessaires pour m'aider.

HTML (nom du HTML:index.html) :

Code : Tout sélectionner

<form name="speedtraining" method="post" action="bdd.php" value="rep"> <select name="vm"> <option value="vm1" selected></option> <option value="vm2">SCHWINTNER</option> <option value="vm3">HIJAZI</option> <option value="vm4">LEPAPE</option> <option value="vm5">FELIX</option> </select> <h2>Sélectionner la puissance de l'engagement</h2> <button form="couleur" class="buttonr" style="margin: auto" onClick="alert('Requete Envoyé')" type="submit" value="1" name="engagement"><span>Rouge</span></button> <button form="couleur" class="buttonj" style="margin: auto" onClick="alert('Requete Envoyé')" type="submit" value="2" name="engagement"><span>Jaune</span></button> <button form="couleur" class="buttonv" style="margin: auto" onClick="alert('Requete Envoyé')" type="submit" value="3" name="engagement"><span>Vert</span></button> </form>
Pour le PHP (nom du PHP:bdd.php) :

Code : Tout sélectionner

<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "st"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $vm = mysqli_real_escape_string($link, $_REQUEST['vm']); $engagement = mysqli_real_escape_string($link, $_REQUEST['engagement']); $sql = "INSERT INTO speedt (vm, engagement) VALUES ('$vm', '$engagement')"; if ($conn->query($sql) === TRUE) { $last_id = $conn->insert_id; echo "Engagement ajouté avec succès. ID de l'ajout: " . $last_id; } else { echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close(); ?>
J'ai surement du omettre des bouts de codes et je souhaiterai vous solliciter pour cela. Aussi a titre d'information je travail en local avec xampp.

Je vous remercie d'avance pour avoir pris le temps de me lire, merci à vous.

Mammouth du PHP | 968 Messages

13 sept. 2018, 17:49

que se passe-t-il ?

Petit nouveau ! | 6 Messages

13 sept. 2018, 17:53

bas le problème est plutôt qu'il ne se passe rien. Aucune information n'est transmise sur la BDD. C'est comme si les mon PHP et mon HTML étaient dissociés néamoins si j'execute le PHP seul, la il rentre des données dans la BDD (pas les bonnes données vu qu'il ne peut pas collecter de données).

Voici ce qu'il se passe lors de l'execution du PHP
Image

Mammouth du PHP | 968 Messages

13 sept. 2018, 18:02

if ($conn->query($sql) === TRUE) {
echo "Engagement ajouté avec succès. ID de l'ajout: " . $last_id;
}
else {
echo "Error: " . $sql . "<br>" . $conn->error;
}

cela affiche quel echo ?

Petit nouveau ! | 6 Messages

13 sept. 2018, 18:07

Le premier avec engaement avec succès. Je te joins le screen lorsque j'execute bdd.php

Image

Mammouth du PHP | 968 Messages

13 sept. 2018, 20:19

dans mon firefox, en enlevant form="couleur", le formulaire est bien soumis, avec, il ne l'est pas (voir la console).

je conseillerais de se limiter à des choses standard pour commencer, 2 fois 3 radio boutons et un bouton classique de soumission d'un formulaire (<input type='submit'>).

Petit nouveau ! | 6 Messages

14 sept. 2018, 11:12

Oui je confirme que lors de la suppression de form=button cela lie le form au fichier PHP mais l'erreur doit venir de mon fichier php car je me retrouve avec mon code php lorsque je clique sur un des boutons :

Code : Tout sélectionner

connect_error) { die("Connection failed: " . $conn->connect_error); } $vm = mysqli_real_escape_string($link, $_REQUEST['vm']); $engagement = mysqli_real_escape_string($link, $_REQUEST['engagement']); $sql = "INSERT INTO speedt (vm, engagement) VALUES ('$vm', '$engagement')"; if ($conn->query($sql) === TRUE) { $last_id = $conn->insert_id; echo "Engagement ajouté avec succès. ID de l'ajout: " . $last_id; } else { echo "Error: " . $sql . " " . $conn->error; } $conn->close(); ?>
Alors que paradoxalement le fichier PHP exécuté tout seul marche (plus ou moins)

Petit nouveau ! | 6 Messages

14 sept. 2018, 13:28

Voila voila j'ai pas mal tout revu et j'ai réussi a faire ce que je voulais je mets les deux codes au cas ou avec les screens :D

Le code HTML de l'index.html
<form name="speedtraining" method="post" action="bdd.php">
		<select name="vm">
			<optgroup label="BU1">
			<option value="vm1" selected></option>
  			<option value="vm2">SCHWINTNER</option>
			<option value="vm3">HIJAZI</option>
			</optgroup>
			<optgroup label="BU2">
			<option value="vm4">LEPAPE</option>
  			<option value="vm5">FELIX</option>
			</optgroup>
		</select>
		<h2>Sélectionner la puissance de l'engagement</h2>
		<button class="buttonr" style="margin: auto" onClick="alert('Requete Envoyé')" type="submit" value="1" name="engagement"><span>Rouge</span></button>
		<button class="buttonj" style="margin: auto" onClick="alert('Requete Envoyé')" type="submit" value="2" name="engagement"><span>Jaune</span></button>
		<button class="buttonv" style="margin: auto" onClick="alert('Requete Envoyé')" type="submit" value="3" name="engagement"><span>Vert</span></button>
	</form>
Le code php de BDD.php :
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "st";
 
if (isset($_POST['vm'])) { $vm = $_POST['vm']; }
if (isset($_POST['engagement'])) { $engagement = $_POST['engagement']; }
 
 
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
 
if (isset($_POST['vm'])) { $vm = $_POST['vm']; }
if (isset($_POST['engagement'])) { $engagement = $_POST['engagement']; } 
 
$sql = "INSERT INTO speedt (vm ,engagement ) VALUES ('$vm','$engagement')";
 
if ($conn->query($sql) === TRUE) {
    $last_id = $conn->insert_id;
    echo "Engagement ajouté avec succès. ID de l'ajout: " . $last_id;
} 
else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}
 
$conn->close();
?>
Image

Maintenant une dernière chose, je souhaiterai que lorsque les gens aient cliqués sur les boutons cela rafraîchisse la page mais en exécutant le php et en ne montrant pas "Engagement ajouté avec succès. ID de l'ajout: X" Est-ce réalisable ?

Petit nouveau ! | 6 Messages

14 sept. 2018, 13:42

Bon bas j'ai encore trouvé tout seul il suffisait d'ajouter header('Location: http://localhost/speedtraining/index.html'); a la fin du php et c'était bon !!!