#php #html #forms
Вопрос:
У меня есть форма, и я пытаюсь распечатать выбранный элемент из массива, чтобы распечатать описание курса. Это часть моего кода. Остальная часть кода работает нормально. У меня проблема только с массивом. Я использую метод и действие. Я чувствую, что мое утверждение foreach неверно, однако я не мог этого понять. Есть идеи, что вызывает печать всех элементов массива?
<label for="course">Choose a course:</label>
<input list="courseOptions" id="course" name="course">
<datalist id="courseOptions">
<option value="COMP1230">
<option value="COMP2129">
<option value="COMP2147">
<option value="COMP2130">
<option value="COMP2138">
<option value="GSSC1054">
</datalist>
<?php
$course = array("COMP1230"=>"Advanced Web Development",
"COMP2129"=>"Advanced Object-Oriented Programming",
"COMP2147"=>"System Analysis, Design amp; Testing",
"COMP2130"=>"Application Development Using Java",
"COMP2138"=>"Advanced Database Development",
"GSSC1054"=>"Forensic Psychology"
);
foreach($course as $courseCode => $courseName){
echo("<div> Course Name: $courseName </div>");
}
?>
Я хочу, чтобы был напечатан только выбранный вариант
Комментарии:
1. Ну, сначала вам нужно будет отправить выбор (через форму или AJAX), прежде чем PHP сможет что-либо с ним сделать
2. Да. Я сделал это
3. Хорошо, в вопросе не было никаких доказательств этого — ни
<form>
тега, ни попытки проверить$_POST
данные, чтобы найти то, что было отправлено. Вы вообще изучали учебник по формам HTML/PHP? Потому что вы бы увидели в этом пользу$_POST
.4. «Есть идеи, что вызывает печать всех элементов массива?» — хм, тот факт, что вы написали код именно для этого …?
Ответ №1:
Когда форма будет отправлена, используйте $_POST['course']
ее, чтобы получить выбранный курс.
if (isset($_POST['course']) {
echo "<div>Course Name: {$course[$_POST['course']]}</div>";
} else {
foreach($course as $courseCode => $courseName){
echo("<div> Course Name: $courseName </div>");
}
}
Комментарии:
1. это сработало, большое вам спасибо.