Momenteel heb ik een medicijn form waar een ingelogde gebruiker een medicijn kan invoeren. Vervolgens worden deze gegevens in verschillende tabellen ingevoerd en dit gaat zonder problemen.
En wat ik nu graag wil bereiken is dat een ingelogde gebruiker de mogelijkheid heeft om de ingevoerde medicijnen te kunnen wijzigen.
Wanneer er geklikt wordt op edit, dan worden alle relevante gegevens van betreffende medicijn op basis van id opgehaald en in het formulier geladen. Dit gaat to zover goed.
Echter, wanneer je klikt op de knop wijzigen dan krijg ik op het scherm de foutmelding: "geen medicijn gekozen" en in de logs krijg ik de foutmeldingen:
"user_registration/med_edit.php' on line 28: Undefined index: id"
"user_registration/med_edit.php' on line 38: Undefined variable: result"
De reden waarom de eerste foutmelding,tweede en derde vaag vindt, omdat er reeds alle relevante medicijn info geladen zijn. Tevens, bestaat result variabel ook.
Ik weet niet of het uitmaakt, maar de info op medicines pagina wordt uit verschillende tabellen weergegeven met als medicine tabel als hoofd tabel..
Mijn tweede vraag is; hoe kan ik gegevens uit een eerder gekozen dropdown-menu weergeven op de edit pagina als in de originele dropdown-menu. En, dat gebruiker in kwestie ziet welke waarde hij gekozen heeft en indien nodig hij een andere waarde kan zien uit de lijst...Hiermee ben ik nog bezig, maar ik dacht misschien heeft iemand een idee/tutorial...
Graag ontvang ik jullie feedback hierover.
Code van edit pagina:
<?php
require ('includes/config.inc.php');
$page_title = 'Overview of all medicines saved to the database';
include ('includes/header.php');
// If no user_id session variable exists, redirect the user:
if (!isset($_SESSION['user_id'])) {
$url = BASE_URL . 'index.php'; // Define the URL.
ob_end_clean(); // Delete the buffer.
header("Location: $url");
exit(); // Quit the script.
}else{
echo "Welcome " . "{$_SESSION['firstname']}". "<br>";
}
// Need the database connection:
require(MYSQL);
// op basis van een id worden gegevens van de vorige pagina geselecteerd en hieronder in het form weergegeven
if(isset($_GET['id'])){
$id = $_GET['id'];
$query = "SELECT medicinename, productiondate, expirationdate, medicineprice FROM medicines WHERE id=$id";
$result = mysqli_query($dbc,$query);
while($row = mysqli_fetch_assoc($result)){
$id= $row['id'];
$medicinename = $row['medicinename'];
$productiondate = $row['productiondate'];
$expirationdate = $row['expirationdate'];
$medicineprice = $row['medicineprice'];
}
} else {
echo "No medicines has been chosen";
}
if(!$result){
die (mysqli_error($dbc));
}
?>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$id= $row['id'];
$update_medicine = "UPDATE medicines SET
medicinename = '$medicinename', productiondate = '$productiondate', expirationdate = '$expirationdate', medicineprice = '$medicineprice'
WHERE id= $id";
$result_update = mysqli_query($dbc,$update_medicine);
if($result_update){
header ("Location: medicines.php");
exit;
} else {
die ("Query failed" . mysqli_error($connection));
}
}
?>
<div>
<h1>Medicines edit page</h1>
<form action="med_edit.php" method="post">
<fieldset>
<legend>Medicines edit form</legend>
<input type="hidden" name="id" value="<?php echo $id; ?>">
<p><label for="medicinename"><b>Medicine Name:</b></label> <input type="text" name="medicinename" id="medicinename" value="<?php if (isset($medicinename)) echo $medicinename; ?>" /></p>
<p><label for="productiondate"><b>Production Date:</b></label> <input type="text" name="productiondate" id="productiondate" value="<?php if (isset($productiondate)) echo $productiondate; ?>" /></p>
<p><b><label for="expirationdate">Expiration Date:</b></label> <input type="text" name="expirationdate" id="expirationdate" value="<?php if (isset($expirationdate)) echo $expirationdate; ?>" /> </p>
<p><b><label for="medicineprise">Medicine price:</b></label> <input type="text" name="medicineprise" id="medicineprise" value="<?php if (isset($medicineprice)) echo $medicineprice; ?>" /> </p>
<input type="submit" name="update_medicine" value="Update medicine">
</fieldset>
</form>
</div>
<?php include "includes/footer.php"; ?>