I am sending an id using the url. However, i can only access the $GET[‘id’] variable when the page loads. When I go on to submit the form, the variable is undefined. What could be the problem
JavaScript
x
if(isset($_GET['id'])) {
$tripId = htmlspecialchars($_GET['id']);
}
if (isset($_POST['submit'])) {
for($i = 0; $i < count($_POST['package']); $i++) {
//check if there are any errors before proceeding
if(array_filter($errors)) {
print_r($errors);
} else {
$package = mysqli_real_escape_string($con, $_POST['package'][$i]);
$price = mysqli_real_escape_string($con, $_POST['price'][$i]);
$sql = "INSERT INTO packages(tripId,packageName,packagePrice) VALUES('$tripId','$package','$price')";
}
//check and redirect
if(mysqli_query($con, $sql)) {
header('location: admin_home.php');
} else {
echo 'error' . mysqli_error($con);
}
}
}
Advertisement
Answer
When you build the form, the target should include the GET parameter too. This is how GET parameters are passed around. $_POST
will be populated with the form fields, $_GET
will be populated with whatever is in the url.
JavaScript
<?php
$url = '/process.php?' . http_build_query(['id' => $yourIdHere]);
?>
<form action="<?=$url;?>" method="POST">
<label for="package">Package:</label>
<input type="text" id="package" name="package"><br><br>
<label for="price">Price:</label>
<input type="text" id="price" name="price"><br><br>
<input type="submit" value="Submit" name="submit">
</form>