Ключи в суперглобальном $_POST
будут отправлены на сервер с теми же именами, что и поля формы. Если эта форма отправляется сама себе, вам необходимо отправить поле с именем agence
, чтобы избежать этой ошибки. PHP выдает ошибку, потому что в массиве $_POST
нет ключа agence
.
Чтобы обойти эту проверку, поскольку эта страница обрабатывает множество форм, вы можете сначала установить каждый ключ перед выполнением проверки на него:
if( isset($_POST['agence']) && $_POST['agence'])=='CARPORT'){
$query='SELECT marque, modele, nom_agence, num_immatriculation from vehicules v, agences ag
WHERE v.id_agence=ag.id_agence
AND ag.nom_agence=="CARPORT"';
}
Вы должны сделать это для всех форм, которые отправляются выборочно.
EDIT:
Вам нужно будет ввести какое-то состояние на странице, «состояние» в смысле того, как далеко пользователь попал в процесс выбора. Давайте сделаем так, чтобы форма для транспортных средств отображалась только в том случае, если пользователь уже выбрал агентство. Эта форма должна быть обернута в условную.
обернуть всю логику для формы транспортных средств в это условие:
if(isset($_POST['agence'])){
$query="SELECT nom_agence from AGENCES";
$state=oci_parse($conn, $query);
oci_execute($state, OCI_COMMIT_ON_SUCCESS);
echo '
<form action="location.php" method="post">
<p><label for="agence">Select a Company</label>
<select name="agence" id="agence">';
while(($row = oci_fetch_array($state, OCI_BOTH))){
echo '<option value="'.$row[0].'">'.$row[0]; echo'</option>';
}
echo '</select></p>';
echo '</form>';
}
Так как эта страница является процедурной, это сделает так, чтобы после того, как был сделан выбор для агентства, тогда и только тогда появится форма транспортного средства.
Нам нужно, чтобы в запросе транспортных средств содержалось предложение WHERE, которое отражает выбор, сделанный пользователем. Выглядит так, как будто вы объединяете идентификатор для двух таблиц, поэтому в предложении where нужно будет искать по идентификатору агентства или названию агентства, в зависимости от структуры базы данных.
Если форма транспортного средства помещена в условное выражение, подобное этому, мы можем быть уверены, что пользователь уже сделал выбор агентства и перешел ко второму «состоянию» формы. Затем вам нужно будет параметризовать оператор SQL и передать выбранный идентификатор.