그래서 데이터베이스의 데이터를 보여주는 여러 드롭 다운 상자를 만들려고합니다. 여러 드롭 다운을 만들 수 있지만 첫 번째 드롭 다운에만 데이터가 표시되고 다른 생성 된 드롭 다운에는 표시되지 않습니다. 나는 이것을 처음 사용하고 일부 전문가의 도움을 받고 싶습니다. 다음은 코드입니다.
<form action="#" method="post">
<select id="aantalMaaltijden" name="aantalMaaltijden">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<input type="submit" name="submit" value="Bereken" />
</form>
<?php
$sql = "SELECT * FROM test";
$result = $conn->query($sql);
if(isset($_POST['submit'])){
$selected_val = $_POST['aantalMaaltijden']; // Storing Selected Value In Variable
for($i=0; $i<$selected_val; $i++){
echo "<select>";
while($row = $result->fetch_array()) {
echo "<option>".$row['name']."</option>";
}
echo "</select>";
}
}
?>
감사합니다 :)
이렇게 코드를 변경하고 알려주세요
if (isset($_POST['submit'])) {
$options = "";
$selected_val = $_POST['aantalMaaltijden']; // Storing Selected Value In Variable
while ($row = $result->fetch_array()) {
$options .= "<option>" . $row['name'] . "</option>";
}
for ($i = 0; $i < $selected_val; $i++) {
echo "<select>";
echo $options;
echo "</select>";
}
}
수정 됨
문제는 $result->fetch_array()
. $result->fetch_array()
동일한 리소스에 대해 두 번 호출 할 수 없습니다 . 전달한 리소스 결과 $result->fetch_array()
는 참조로 수행됩니다. $result->fetch_array()
두 번째로 사용하기 전에 포인터의 위치를 재설정해야합니다 . 이것이 바로 첫 번째 드롭 다운이 다른 데이터가 아닌 데이터로 채워지는 이유입니다.
모든 드롭 다운이 동일한 옵션으로 구성되기 때문에 변수에 모든 옵션을 추가 $options
하고 모두 select
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다