Please help me. Thanks I have a form which contains function's javascript and in function's javascript contains html code.
My question is : how to send in database my form ?
This is my form :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Créer une facture</title>
<link rel="stylesheet" href="style.css" media="all" />
</head>
<body>
<form action="affiche.php" method="post">
<fieldset>
<legend>Contenu de la facture formation</legend>
<div id="ID_container">
<textarea name="prestation[]" rows="4"
placeholder="Prestation" required></textarea>
<input type="number" placeholder="Nombre de jours" name="nbjours[]" required>
<input type="number" placeholder="Tarif journalier" name="tarifjour[]" required>
</div>
<button onclick="ajout(this);">+ Ajouter une prestation</button>
<br/><br/>
<input type="submit" name="envoyer" value="Envoyer"/>
</fieldset>
</form>
<script src="js/fonct.js"></script>
</body>
</html>
This is function JS:
function ajout(element){
var container = document.getElementById('ID_container');
var str ='<span><textarea name="prestation[]" rows="4" type="text" placeholder="Prestation"></textarea> </span><span><input name="nbjours[]" type="number" placeholder="Nombre de jour"> </span><span><input name="tarifjour[]" type="number" placeholder="Tarif journalier"> </span><span><input type="button" onclick="suppression(this)"; value="x"></span><br/>';
var divNewExp = document.createElement("div");
divNewExp.innerHTML = str ;
container.appendChild(divNewExp);
}
function suppression(element){
var container = document.getElementById('ID_container');
container.removeChild(element.parentNode.parentNode);
}
Here i want send these data in database and displays data, but it is not work, data are not send in database :
<?php
require_once 'connexion.php';
// On vérifie si la variable existe et sinon elle vaut NULL
$prestation = isset($_POST['prestation']) ? $_POST['prestation'] : NULL;
$nbjours = isset($_POST['nbjours']) ? $_POST['nbjours'] : NULL;
$tarifjour = isset($_POST['tarifjour']) ? $_POST['tarifjour'] : NULL;
//On récupère les différentes valeurs sous forme d'une chaine de caractères séparées par une virgule
$prestation=implode(",", $_POST['prestation']);
$nbjours=implode(",", $_POST['nbjours']);
$tarifjour=implode(",", $_POST['tarifjour']);
$req = $base->prepare('INSERT INTO facturation (prestation, nbjours, tarifjour)
VALUES ("'.$prestation.'", "'.$nbjours.'", "'.$tarifjour.'")');
$req->execute(array( 'prestation'=> $prestation,
'nbjours'=> $nbjours,
'tarifjour'=> $tarifjour));
echo "les données ont bien étés insérées dans la base de données";
$base = null;
?>
<tr>
<?= foreach((array)$req as $presta) ?>
<td class="desc"><?php echo $presta['prestation'] ?></td>
<td class="qty"><?php echo $presta['nbjours'] ?></td>
<td class="unit"><?php echo $presta['tarifjour'] ?></td>
<td class="total"><?php echo $presta['tarifjour'] * $presta['nbjours'] ?></td>
</tr>
type="button"to your button in the form since the default behavior is "submit" (and will submit the form which I'm guessing you don't want).