I'm having an issue in submitting input values in a form from a page to another, with the post method; when I try getting the values with $_POST['input_name'], it doesn't return anything, and I get a "Undefined index" notice on the page I'm sending the data to. The only value that is passed correclty is ['studentid']. the form is inside of a foreach loop. I'm pretty new to php, so I might be ignoring something really basic.
first page code:
<?php
$aStudents = NULL;
$aStudents = $MobilityClass->GetFlowStudents($id_flow, $oConn);
if (count((array) $aStudents) > 0) {
$k = 0;
foreach ($aStudents as $aResult) {
$k = $k + 1;
?>
<tr>
<td><?php echo($k); ?></td>
<td><a class="" title="edit" href="student.php?id_student=<?php echo($aResult['id_student']); ?>"><?php
echo($aResult['student_surname']);
echo(' ');
echo($aResult['student_name']);
?> <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></a>
<?php
$studentid = "";
$studentid = $aResult['id_student'];
?>
</td>
<td>
<?php
$data_par = null;
$datap = null;
$datap = mysqli_query($oConn, "SELECT DATE_FORMAT(data_partenza, '%d-%m-%Y') as data_partenza from flight_details where id_student = " . $studentid . ";");
$data_par = mysqli_fetch_array($datap);
if ((string) $data_par[0] == '00-00-0000') {
$data_par[0] = null;
$formdatea = null;
} else {
// echo $data_par[0];
$formdatep = DateTime::createFromFormat('d-m-Y', $data_par[0])->format('Y-m-d');
}
echo $formdatep;
?>
<input form="update_form" value="<?php echo $formdatep; ?>" class="form-control" type="date" name="data_partenza">
<input form="update_form" type="hidden" value="<?php echo $url; ?>" name="url">
</td>
<td>
<?php
$data_arr = null;
$dataa = null;
$dataa = mysqli_query($oConn, "SELECT DATE_FORMAT(data_arrivo, '%d-%m-%Y') as data_arrivo from flight_details where id_student = " . $studentid . ";");
$data_arr = mysqli_fetch_array($dataa);
if ((string) $data_arr[0] == '00-00-0000') {
$data_arr[0] = null;
$formdatea = null;
} else {
// echo $data_par[0];
$formdatea = DateTime::createFromFormat('d-m-Y', $data_arr[0])->format('Y-m-d');
}
echo $formdatea;
?>
<input form="update_form" type="date" name="data_arrivo" class="form-control" id="name" value="<?php echo $formdatea; ?>">
</td>
<td>
<?php
$orap = mysqli_query($oConn, "SELECT DATE_FORMAT(ora_partenza, '%H:%i') as ora_partenza from flight_details where id_student = " . $studentid . ";");
$ora_par = mysqli_fetch_array($orap);
?>
<input form="update_form" type="time" name="ora_partenza" class="form-control" id="name" value="<?php echo $ora_par[0]; ?>">
</td>
<td>
<?php
$oraa = mysqli_query($oConn, "SELECT DATE_FORMAT(ora_arrivo, '%H:%i') as ora_arrivo from flight_details where id_student = " . $studentid . ";");
$ora_arr = mysqli_fetch_array($oraa);
?>
<input form="update_form" type="time" name="ora_arrivo" class="form-control" id="name" value="<?php echo $ora_arr[0]; ?>">
</td>
<td>
<select form="update_form" name="luogo_partenza" class=" form-control" >
<?php
$departure = mysqli_query($oConn, "select luogo_partenza from flight_details where id_student = " . $studentid . ";");
$loc_departure = mysqli_fetch_array($departure);
$countries = array();
$countries = mysqli_query($oConn, "select id,name from countries");
foreach ($countries as $country) {
if (trim($loc_departure[0]) == trim($country['name'])) {
$selected = 'selected';
} else {
$selected = '';
}
echo '<option value="' . $country['name'] . '"' . $selected . '>' . $country['name'] . '</option>';
}
?>
</select>
</td>
<td>
<!--class="selectpicker"-->
<select form="update_form" name="luogo_arrivo" class=" form-control" >
<?php
$arrival = mysqli_query($oConn, "select luogo_arrivo from flight_details where id_student = " . $studentid . ";");
$loc_arrival = mysqli_fetch_array($arrival);
// echo $loc_arrival[0];
$countries = array();
$countries = mysqli_query($oConn, "select id,name from countries");
foreach ($countries as $country) {
if ($loc_arrival[0] == $country['name']) {
$selected = 'selected';
} else {
$selected = '';
}
echo '<option value="' . $country['name'] . '"' . $selected . '>' . $country['name'] . '</option>';
}
?>
</select>
</td>
<td style="align-content: center;">
<form id="update_form" action="update-flight-details.php" method="post">
<?php echo $studentid ?>
<input type="hidden" value="<?php echo $studentid; ?>" name="studentid">
<button type="submit" name="update" class="btn-success btn btn-sm">Save</button>
</form>
</td>
</tr>
<?php }
} ?>
second page code:
<?php
if (isset($_POST["update"])) {
$url = $_POST['url'];
echo $_POST['studentid'];
echo $_POST['data_partenza'];
echo $_POST['luogo_arrivo'];
if (!isset($_POST['data_partenza'])) {
$_POST['data_partenza'] = null;
}
if (!isset($_POST['data_arrivo'])) {
$_POST['data_arrivo'] = null;
}
if (!isset($_POST['ora_partenza'])) {
$_POST['ora_partenza'] = null;
}
if (!isset($_POST['ora_arrivo'])) {
$_POST['ora_arrivo'] = null;
}
if (!isset($_POST['luogo_partenza'])) {
$_POST['luogo_partenza'] = null;
}
if (!isset($_POST['luogo_arrivo'])) {
$_POST['luogo_arrivo'] = null;
}
mysqli_query($oConn, "
UPDATE flight_details SET
data_partenza = '" . $_POST['data_partenza'] . "',
data_arrivo = '" . $_POST['data_arrivo'] . "',
ora_partenza = '" . $_POST['ora_partenza'] . "',
ora_arrivo = '" . $_POST['ora_arrivo'] . "',
luogo_partenza = '" . $_POST['luogo_partenza'] . "',
luogo_arrivo = '" . $_POST['luogo_arrivo'] . "'
where id_student = " . $_POST['studentid'] . ";
");
}?>
I lost all day on this, help please :')
EDIT: I also created the code to update all students together, I wrote it just as the one I wrote above, and that one works. here it is:
1st page:
<tr>
<td></td>
<td>All students</td>
<td>
<input form="update_all_form" type="date" name="data_partenza_all" class="form-control" id="name" value="">
<input form="update_all_form" type="hidden" value="<?php echo $url; ?>" name="urlall">
</td>
<td>
<input form="update_all_form"type="date" name="data_arrivo_all" class="form-control" id="name" value="">
</td>
<td>
<input form="update_all_form" type="time" name="ora_partenza_all" class="form-control" id="name" value="">
</td>
<td>
<input form="update_all_form" type="time" name="ora_arrivo_all" class="form-control" id="name" value="">
</td>
<td>
<select form="update_all_form" name="luogo_partenza_all" class=" form-control">
<?php
$countries = array();
$countries = mysqli_query($oConn, "select id,name from countries");
foreach ($countries as $country) {
echo '<option value="'.$country['name'].'">'.$country['name'].'</option>';
}
?>
</select>
</td>
<td>
<select form="update_all_form" name="luogo_arrivo_all" class=" form-control">
<?php
$countries = array();
$countries = mysqli_query($oConn, "select id,name from countries");
foreach ($countries as $country) {
echo '<option value="'.$country['name'].'">'.$country['name'].'</option>';
}
?>
</select>
</td>
<td style="align-content: center;">
<form id="update_all_form" action="update-flight-details.php" method="post">
<button type="submit" name="update_all" class="btn-success btn btn-sm">Save</button>
</form>
</td>
</tr>
</thead>
<tbody>
2nd page:
else if (isset($_POST["update_all"])){
$urlall=$_POST['urlall'];
mysqli_query($oConn,
"
UPDATE flight_details SET
data_partenza = '".$_POST['data_partenza_all']."',
data_arrivo = '".$_POST['data_arrivo_all']."',
ora_partenza = '".$_POST['ora_partenza_all']."',
ora_arrivo = '".$_POST['ora_arrivo_all']."',
luogo_partenza = '".$_POST['luogo_partenza_all']."',
luogo_arrivo = '".$_POST['luogo_arrivo_all']."';
");
}
You are opening form tag after elements are declared. Form elements should be wrapped inside opening and closing form tags to fetch data.
first page code:
<form id="update_form" action="update-flight-details.php" method="post">
<?php
$aStudents = NULL;
$aStudents = $MobilityClass->GetFlowStudents($id_flow, $oConn);
if (count((array) $aStudents) > 0) {
$k = 0;
foreach ($aStudents as $aResult) {
$k = $k + 1;
?>
<tr>
<td><?php echo($k); ?></td>
<td><a class="" title="edit" href="student.php?id_student=<?php echo($aResult['id_student']); ?>"><?php
echo($aResult['student_surname']);
echo(' ');
echo($aResult['student_name']);
?> <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></a>
<?php
$studentid = "";
$studentid = $aResult['id_student'];
?>
</td>
<td>
<?php
$data_par = null;
$datap = null;
$datap = mysqli_query($oConn, "SELECT DATE_FORMAT(data_partenza, '%d-%m-%Y') as data_partenza from flight_details where id_student = " . $studentid . ";");
$data_par = mysqli_fetch_array($datap);
if ((string) $data_par[0] == '00-00-0000') {
$data_par[0] = null;
$formdatea = null;
} else {
// echo $data_par[0];
$formdatep = DateTime::createFromFormat('d-m-Y', $data_par[0])->format('Y-m-d');
}
echo $formdatep;
?>
<input form="update_form" value="<?php echo $formdatep; ?>" class="form-control" type="date" name="data_partenza">
<input form="update_form" type="hidden" value="<?php echo $url; ?>" name="url">
</td>
<td>
<?php
$data_arr = null;
$dataa = null;
$dataa = mysqli_query($oConn, "SELECT DATE_FORMAT(data_arrivo, '%d-%m-%Y') as data_arrivo from flight_details where id_student = " . $studentid . ";");
$data_arr = mysqli_fetch_array($dataa);
if ((string) $data_arr[0] == '00-00-0000') {
$data_arr[0] = null;
$formdatea = null;
} else {
// echo $data_par[0];
$formdatea = DateTime::createFromFormat('d-m-Y', $data_arr[0])->format('Y-m-d');
}
echo $formdatea;
?>
<input form="update_form" type="date" name="data_arrivo" class="form-control" id="name" value="<?php echo $formdatea; ?>">
</td>
<td>
<?php
$orap = mysqli_query($oConn, "SELECT DATE_FORMAT(ora_partenza, '%H:%i') as ora_partenza from flight_details where id_student = " . $studentid . ";");
$ora_par = mysqli_fetch_array($orap);
?>
<input form="update_form" type="time" name="ora_partenza" class="form-control" id="name" value="<?php echo $ora_par[0]; ?>">
</td>
<td>
<?php
$oraa = mysqli_query($oConn, "SELECT DATE_FORMAT(ora_arrivo, '%H:%i') as ora_arrivo from flight_details where id_student = " . $studentid . ";");
$ora_arr = mysqli_fetch_array($oraa);
?>
<input form="update_form" type="time" name="ora_arrivo" class="form-control" id="name" value="<?php echo $ora_arr[0]; ?>">
</td>
<td>
<select form="update_form" name="luogo_partenza" class=" form-control" >
<?php
$departure = mysqli_query($oConn, "select luogo_partenza from flight_details where id_student = " . $studentid . ";");
$loc_departure = mysqli_fetch_array($departure);
$countries = array();
$countries = mysqli_query($oConn, "select id,name from countries");
foreach ($countries as $country) {
if (trim($loc_departure[0]) == trim($country['name'])) {
$selected = 'selected';
} else {
$selected = '';
}
echo '<option value="' . $country['name'] . '"' . $selected . '>' . $country['name'] . '</option>';
}
?>
</select>
</td>
<td>
<!--class="selectpicker"-->
<select form="update_form" name="luogo_arrivo" class=" form-control" >
<?php
$arrival = mysqli_query($oConn, "select luogo_arrivo from flight_details where id_student = " . $studentid . ";");
$loc_arrival = mysqli_fetch_array($arrival);
// echo $loc_arrival[0];
$countries = array();
$countries = mysqli_query($oConn, "select id,name from countries");
foreach ($countries as $country) {
if ($loc_arrival[0] == $country['name']) {
$selected = 'selected';
} else {
$selected = '';
}
echo '<option value="' . $country['name'] . '"' . $selected . '>' . $country['name'] . '</option>';
}
?>
</select>
</td>
<td style="align-content: center;">
<?php echo $studentid ?>
<input type="hidden" value="<?php echo $studentid; ?>" name="studentid">
<button type="submit" name="update" class="btn-success btn btn-sm">Save</button>
</td>
</tr>
<?php }
} ?>
</form>
Try the above code.
You all fields which you want in second page must be within <form id="update_form" action="update-flight-details.php" method="post">
tag
So Just cut <form id="update_form" action="update-flight-details.php" method="post">
tag and put before the <?php $aStudents = NULL;
And cut </form>
and put it after <?php } } ?>
This will work for you. Also I just put whole code for you.
<form id="update_form" action="update-flight-details.php" method="post">
<?php
$aStudents = NULL;
$aStudents = $MobilityClass->GetFlowStudents($id_flow, $oConn);
if (count((array) $aStudents) > 0) {
$k = 0;
foreach ($aStudents as $aResult) {
$k = $k + 1;
?>
<tr>
<td><?php echo($k); ?></td>
<td><a class="" title="edit" href="student.php?id_student=<?php echo($aResult['id_student']); ?>"><?php
echo($aResult['student_surname']);
echo(' ');
echo($aResult['student_name']);
?> <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></a>
<?php
$studentid = "";
$studentid = $aResult['id_student'];
?>
</td>
<td>
<?php
$data_par = null;
$datap = null;
$datap = mysqli_query($oConn, "SELECT DATE_FORMAT(data_partenza, '%d-%m-%Y') as data_partenza from flight_details where id_student = " . $studentid . ";");
$data_par = mysqli_fetch_array($datap);
if ((string) $data_par[0] == '00-00-0000') {
$data_par[0] = null;
$formdatea = null;
} else {
// echo $data_par[0];
$formdatep = DateTime::createFromFormat('d-m-Y', $data_par[0])->format('Y-m-d');
}
echo $formdatep;
?>
<input form="update_form" value="<?php echo $formdatep; ?>" class="form-control" type="date" name="data_partenza">
<input form="update_form" type="hidden" value="<?php echo $url; ?>" name="url">
</td>
<td>
<?php
$data_arr = null;
$dataa = null;
$dataa = mysqli_query($oConn, "SELECT DATE_FORMAT(data_arrivo, '%d-%m-%Y') as data_arrivo from flight_details where id_student = " . $studentid . ";");
$data_arr = mysqli_fetch_array($dataa);
if ((string) $data_arr[0] == '00-00-0000') {
$data_arr[0] = null;
$formdatea = null;
} else {
// echo $data_par[0];
$formdatea = DateTime::createFromFormat('d-m-Y', $data_arr[0])->format('Y-m-d');
}
echo $formdatea;
?>
<input form="update_form" type="date" name="data_arrivo" class="form-control" id="name" value="<?php echo $formdatea; ?>">
</td>
<td>
<?php
$orap = mysqli_query($oConn, "SELECT DATE_FORMAT(ora_partenza, '%H:%i') as ora_partenza from flight_details where id_student = " . $studentid . ";");
$ora_par = mysqli_fetch_array($orap);
?>
<input form="update_form" type="time" name="ora_partenza" class="form-control" id="name" value="<?php echo $ora_par[0]; ?>">
</td>
<td>
<?php
$oraa = mysqli_query($oConn, "SELECT DATE_FORMAT(ora_arrivo, '%H:%i') as ora_arrivo from flight_details where id_student = " . $studentid . ";");
$ora_arr = mysqli_fetch_array($oraa);
?>
<input form="update_form" type="time" name="ora_arrivo" class="form-control" id="name" value="<?php echo $ora_arr[0]; ?>">
</td>
<td>
<select form="update_form" name="luogo_partenza" class=" form-control" >
<?php
$departure = mysqli_query($oConn, "select luogo_partenza from flight_details where id_student = " . $studentid . ";");
$loc_departure = mysqli_fetch_array($departure);
$countries = array();
$countries = mysqli_query($oConn, "select id,name from countries");
foreach ($countries as $country) {
if (trim($loc_departure[0]) == trim($country['name'])) {
$selected = 'selected';
} else {
$selected = '';
}
echo '<option value="' . $country['name'] . '"' . $selected . '>' . $country['name'] . '</option>';
}
?>
</select>
</td>
<td>
<!--class="selectpicker"-->
<select form="update_form" name="luogo_arrivo" class=" form-control" >
<?php
$arrival = mysqli_query($oConn, "select luogo_arrivo from flight_details where id_student = " . $studentid . ";");
$loc_arrival = mysqli_fetch_array($arrival);
// echo $loc_arrival[0];
$countries = array();
$countries = mysqli_query($oConn, "select id,name from countries");
foreach ($countries as $country) {
if ($loc_arrival[0] == $country['name']) {
$selected = 'selected';
} else {
$selected = '';
}
echo '<option value="' . $country['name'] . '"' . $selected . '>' . $country['name'] . '</option>';
}
?>
</select>
</td>
<td style="align-content: center;">
<?php echo $studentid ?>
<input type="hidden" value="<?php echo $studentid; ?>" name="studentid">
<button type="submit" name="update" class="btn-success btn btn-sm">Save</button>
</td>
</tr>
<?php }
} ?>
</form>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.