【PHP】풀다운에서 설정한 항목을 selected로 하는 샘플

10667 단어 SQLite3PHP초보자용

소개



공룡 등록 도구 2
에서 하이브리드 공룡을 등록할 때 생성원 공룡 유형을 다른 페이지로 전송한 후,
전 페이지의 타입에 해당 공룡명을 선택하는 수법을 취하고 있었지만, 귀찮다.

타입과 그에 따른 공룡명을 한 번에 확정하고 싶었다.
그래서 의사 연동 풀다운을 생각해 보았습니다.

첫 번째, 두 번째 풀다운 모두 DB의 SELECT 결과를 이용.
첫 번째 풀다운 선택 항목 (normal, rare, epic, legend) 결정 (확인 버튼 누름 후)
나중에 그 항목에 있던 내용을 두 번째 풀다운 항목을 내보내 보았다.
아래 소스의 포인트는
\$cate0과 $select_data['type0']을 비교하는 부분
(※$cate0은 첫 번째 풀다운으로 확정된 항목)

출처



공룡 등록 도구 2
에서 만든 테이블과 소스를 일부 유용.

select_pulldown_dino.php
<!DOCTYPE html>
<html lang="ja">
<meta charset="utf-8">
<title>恐竜タイプ選択1</title>
<h1>恐竜タイプ選択</h1>

<body>

<?php 
    require "common_dino.php";
    $db_name='dino_collect.db';
    $db1 = new PDO('sqlite:'.$db_name);
    $query_type0 = "SELECT DISTINCT type0 from tbl_dino";
 ?>
    <form action="select_pulldown_dino.php" method="post">
カテゴリー:
    <?php $result_a=get_AllData($db1,$query_type0); 
    $cate0=isset($_POST['dtype0'])?htmlspecialchars($_POST['dtype0']):null;

     ?> 
    <select name="dtype0">
        <?php while($select_data=$result_a->fetch(PDO::FETCH_ASSOC)){
            //$cate0が$select_data['type0']と等しい場合
            if($cate0 == $select_data['type0']){ 
                echo "<option selected>".$select_data['type0']."</option>";
            //$cate0が$select_data['type0']と等しくない場合
            }else{
                echo "<option>".$select_data['type0']."</option>";
            }
        }   
        ?>
    </select><br>
    <input type="submit" name = "btn2" value="確定">
    </form>


<?php 
    $db_name='dino_collect.db';
    $db1 = new PDO('sqlite:'.$db_name);
    $query_select_type0 = "SELECT dname0 from tbl_dino where type0 = ?";
    $result3=$db1->prepare($query_select_type0);
    //パラメータをセット
    $result3->bindparam(1,$cate0);
    $result3->execute();

 ?>

    <form action="select_pulldown_dino.php" method="post">
対象生物:
    <select name="dname">
        <?php $dino0=isset($_POST['dname'])?htmlspecialchars($_POST['dname']):null; ?>
        <?php while($select_data=$result3->fetch(PDO::FETCH_ASSOC)){
            echo "<option>".$select_data['dname0']."</option>";
        }   
        ?>
    </select><br>
    <input type="hidden" name="btn3" value="<?=$cate0?>">
    <input type="submit" value="確定">
    </form>

<?php 
    $cate0=isset($_POST['btn3'])?htmlspecialchars($_POST['btn3']):null;
    if(empty($dino0) == false && empty($cate0)== false){
        print $dino0.",".$cate0;
    }

 ?>


실행 결과



카테고리를 선택한 후 "확정"을 누르면 선택한 카테고리가 표시됩니다.
선택 카테고리에 포함된 공룡이 풀다운에 표시됩니다.



마지막으로



javascript라든지, 복수 풀다운의 연동이라든지 간단해 보이지만,
php만으로 구현하는 것은 지루한가, 나의 기술력 부족인가.
좋은 방법이 없습니까?

전부 취득할 수 없는 것이 판명되었으므로 수정

좋은 웹페이지 즐겨찾기