Bonjour,
Cela fait plusieurs semaines que je bloque malgrès beaucoup de recherche sur internet.
J'ai un formulaire de prise de rendez-vous avec un entreprot, le fournisseur ( supplier en anglais) renseigne un certain nombre de champs dont le numéro de commande ( Order Number), le nombre de produit (Sku), le nombre de carton, la date d'arrivée à l'entreprot ainsi que son heure d'arrivée et d'autres informations mais qui ne sont pas utile ici.
Cependant l'entreprot ne peut traiter que 5 fournisseurs par plage horaire d'une heure ( par exemple la plage horaire 8:00) j'aimerais donc que lorsque le fournisseur renseigne sa date d'arrivée seules les plages horaires disponibles ( i.e. celles où il y a moins de 5 fournisseurs inscrits dans la base de données) soient affichées.
J'ai vu sur ce site un sujet presque similaire :
https://forum.alsacreations.com/topic-5-64223-1-JQuery-SQL---champ-de-formulaire-dynamique.html
mais je ne connais pas assez ajax et je n'arrive pas à mettre en place la réponse apportée. Quelqu'un pourrait il m'aider ?
Merci
Je met mon code ci- après :
Désolé pour la longueur du code
Cela fait plusieurs semaines que je bloque malgrès beaucoup de recherche sur internet.
J'ai un formulaire de prise de rendez-vous avec un entreprot, le fournisseur ( supplier en anglais) renseigne un certain nombre de champs dont le numéro de commande ( Order Number), le nombre de produit (Sku), le nombre de carton, la date d'arrivée à l'entreprot ainsi que son heure d'arrivée et d'autres informations mais qui ne sont pas utile ici.
Cependant l'entreprot ne peut traiter que 5 fournisseurs par plage horaire d'une heure ( par exemple la plage horaire 8:00) j'aimerais donc que lorsque le fournisseur renseigne sa date d'arrivée seules les plages horaires disponibles ( i.e. celles où il y a moins de 5 fournisseurs inscrits dans la base de données) soient affichées.
J'ai vu sur ce site un sujet presque similaire :
https://forum.alsacreations.com/topic-5-64223-1-JQuery-SQL---champ-de-formulaire-dynamique.html
mais je ne connais pas assez ajax et je n'arrive pas à mettre en place la réponse apportée. Quelqu'un pourrait il m'aider ?
Merci
Je met mon code ci- après :
<!-- Last modified in August 2017 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<link rel="stylesheet" type="text/css" href="style_booking.css">
<title>Arrival Date and Time</title>
</head>
<body>
<div id="bloc_page">
<div id="title_page">
<h3>Supplier date and arrival time</h3>
</div>
<form action="arrival.php" method="POST">
<div id="p_OrderNo">
<label for="OrderNo"><strong>Order Number :</strong></label>
<input type="int" name="OrderNo" id="OrderNo" autofocus />
</div>
<br/>
<div id="p_sku_delivered">
<label for="sku_delivered"><strong>How many sku can be deliver ?</strong></label>
<input type="int" name="sku_delivered" id="sku_delivered" />
</div>
<br/>
<div id="p_carton_delivered">
<label for="carton_delivered"><strong>How many cartons can be deliver ?</strong></label>
<input type="int" name="carton_delivered" id="carton_delivered" />
</div>
<br/>
<div id="p_arrival_date">
<label for="arrival_date"><strong>Arrival Date :</strong></label>
<input type="Date" name="arrival_date" id="arrival_date" />
</div>
<!-- <br/>
<button id="available_time">See available time</button> -->
<br/>
<div id="p_arrival_time">
<label for="arrival_time"><strong>Arrival Time :</strong></label>
<select name="arrival_time" id="arrival_time" required >
<option id="time_slot_8" value="8:00">8:00 </option>
<option id="time_slot_9" value="9:00">9:00 </option>
<option id="time_slot_10" value="10:00">10:00 </option>
<option id="time_slot_11" value="11:00">11:00 </option>
<option id="time_slot_13" value="13:00">13:00 </option>
<option id="time_slot_14" value="14:00">14:00 </option>
<option id="time_slot_15" value="15:00">15:00 </option>
</select>
</div>
<br/>
</form>
<!-- Connection to the database -->
<?php
try
{
// Connection to the database
$bdd = new PDO('mysql:host=localhost;dbname=fournisseurs;charset=utf8', 'root', '',
array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
// We test if the user has really fill an order number,an arrival date and an arrival time
if (isset($_POST['OrderNo']) && isset($_POST['arrival_date']) && isset($_POST['arrival_time']))
{
// We make benign HTML tag which might be fill by the visitor
$_POST['OrderNo']=htmlspecialchars($_POST['OrderNo']);
$OrderNo_lu=$_POST['OrderNo'];
// We convert any format dat filled by visitor into the us format : YYYY-MM-DD
$_POST['arrival_date']=htmlspecialchars($_POST['arrival_date']);
$arrival_date=$_POST['arrival_date'];
$arrival_date_us=date('Y-m-d 00:00:00', strtotime(str_replace ('/', '-', $arrival_date)));
$_POST['arrival_time']=htmlspecialchars($_POST['arrival_time']);
$arrival_time=$_POST['arrival_time'];
echo "The date collected is $arrival_date_us <br/>";
// Variable session
$fournisseur_nom='fournisseur2';
$pickup_8="0";
$pickup_9="0";
// We insert information filled by user in database
$req = $bdd->prepare('INSERT INTO commande(fournisseur_name,PoNumber,date_commande,time_commande) VALUES(:fournisseur_name, [langue]oNumber, :arrival_date, :time_arrival)') or die(print_r($bdd->errorInfo()));
$req->execute(array(
'fournisseur_name' => $fournisseur_nom,
'PoNumber'=>$OrderNo_lu,
'arrival_date'=>$arrival_date_us,
'time_arrival'=>$arrival_time));
$req->closeCursor();
// We ask database how many distinct supplier have booked for 8:00 at the date choosen
$answer8= $bdd->query('SELECT COUNT(DISTINCT fournisseur_name) AS number_supplier_8 FROM commande WHERE date_commande=\''.$arrival_date_us.'\' AND time_commande="8:00"') or die(print_r($bdd->errorInfo()));
while ($number_supplier_time8=$answer8->fetch())
{
echo 'There is '.$number_supplier_time8['number_supplier_8'].' supplier on '.$arrival_date_us.' at 8:00 <br/>';
if($number_supplier_time8['number_supplier_8'] >= 5)
{
$pickup_8 ="5";
}
}
$answer8->closeCursor();
echo json_encode($pickup_8);
?>
<?php
}
else
{
echo nl2br("Please fill all form");
}
?>
</div>
<script src="jquery321.js"></script>
<script src="jqueryscripy.js"></script>
<script type="text/javascript">
$(function() {
var pickup_8_collected = <?php echo json_encode($pickup_8); ?>;
$.ajax({
url: "http://localhost/proto_supplier/arrival.php",
type: "POST",
data: { 'MonCul': 'C\'est du poulet' }, /* peu importe le emssage envoyé a ton fichier php */
dataType: 'json',
success: function(json){
if (json.reponse == '5') { /* json.X == X dépend de ce que renvoi ton fichier php */
$("#time_slot_8").remove();
} else {
}
}
});
});
</script>
</body>
</html>
Désolé pour la longueur du code