PHP에서 데이터가 포함 된 선택한 값을 기반으로 여러 드롭 다운을 생성하려면 어떻게해야합니까?

Caisahr

그래서 데이터베이스의 데이터를 보여주는 여러 드롭 다운 상자를 만들려고합니다. 여러 드롭 다운을 만들 수 있지만 첫 번째 드롭 다운에만 데이터가 표시되고 다른 생성 된 드롭 다운에는 표시되지 않습니다. 나는 이것을 처음 사용하고 일부 전문가의 도움을 받고 싶습니다. 다음은 코드입니다.

<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>";                   
    }
}

?>

감사합니다 :)

Shrikant Mavlankar

이렇게 코드를 변경하고 알려주세요

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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관