여분필드 리스트페이지에서 검색 질문 드립니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
여분필드 리스트페이지에서 검색 질문 드립니다.

QA

여분필드 리스트페이지에서 검색 질문 드립니다.

본문

안녕하세요 질문좀 드리겠습니다.

지금 wr_8 셀렉트박스 내용 클릭시 해당 게시물만 나오게끔 되어있는 상태 입니다.

 

그런데 이거를

 

wr_1 wr_2 select  총 3개를 선택 후 검색 하게 하고 싶은데 

방법좀 알려주시면 감사하겠습니다.

 


 <form name="fsearch" method="get">
            <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
            <input type="hidden" name="sca" value="<?php echo $sca ?>">
            <input type="hidden" name="sop" value="and">
 
             <input type="hidden" name="sfl" value="wr_8">
               <select name="stx" onchange="this.form.submit()">
                    <option value="">시도</option> 
                    <option value="EU">EU</option> 
                    <option value="Resseller">Resseller</option>
                </select>     
                
            
                
 </form>

이 질문에 댓글 쓰기 :

답변 3

<form name="fsearch" method="get">
    <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
    <input type="hidden" name="sca" value="<?php echo $sca ?>">
    <input type="hidden" name="sop" value="and">
    <input type="hidden" name="sfl" value="wr_8">


    <select name="stx" onchange="this.form.submit()">
        <option value="">시도</option>
        <option value="EU" <?php echo ($_GET['stx'] == 'EU') ? 'selected' : ''; ?>>EU</option>
        <option value="Reseller" <?php echo ($_GET['stx'] == 'Reseller') ? 'selected' : ''; ?>>Reseller</option>
    </select>

    <select name="wr_1" onchange="this.form.submit()">
        <option value="">wr_1 선택</option>
        <option value="Value1" <?php echo ($_GET['wr_1'] == 'Value1') ? 'selected' : ''; ?>>Value1</option>
        <option value="Value2" <?php echo ($_GET['wr_1'] == 'Value2') ? 'selected' : ''; ?>>Value2</option>
    </select>

    <select name="wr_2" onchange="this.form.submit()">
        <option value="">wr_2 선택</option>
        <option value="Option1" <?php echo ($_GET['wr_2'] == 'Option1') ? 'selected' : ''; ?>>Option1</option>
        <option value="Option2" <?php echo ($_GET['wr_2'] == 'Option2') ? 'selected' : ''; ?>>Option2</option>
    </select>

 

<form name="fsearch" method="get">
    <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
    <input type="hidden" name="sca" value="<?php echo $sca ?>">
    <input type="hidden" name="sop" value="and">
    <input type="hidden" name="sfl" value="wr_8">
<input type="hidden" name="sfl" value="wr_9">


    <select name="stx" onchange="this.form.submit()">
        <option value="">시도</option>
        <option value="EU" <?php echo ($_GET['wr_8'] == 'EU') ? 'selected' : ''; ?>>EU</option>
        <option value="Reseller" <?php echo ($_GET['wr_8'] == 'Reseller') ? 'selected' : ''; ?>>Reseller</option>
    </select>

    <select name="wr_9" onchange="this.form.submit()">
        <option value="">wr_1 선택</option>
        <option value="활성화고객" <?php echo ($_GET['wr_9'] == '활성화고객') ? 'selected' : ''; ?>>활성화고객</option>
        <option value="유지고객" <?php echo ($_GET['wr_9'] == '유지고객') ? 'selected' : ''; ?>>유지고객</option>
    </select>


답변주셔서 감사합니다.
이렇게 적용해봤는데 아무 변화가 없는데 제가 어떤 부분을 놓치고 있는지 궁금합니다.

혹시 검색버튼을 만들고 한번에 클릭 후 검색으로 는 어떻게 해야하는지도 알려주시면 감사하겠습니다.

<!-- sfl 중복되고있어서제거 -->

<form name="fsearch" method="get">
    <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
    <input type="hidden" name="sca" value="<?php echo $sca ?>">
    <input type="hidden" name="sop" value="and">
    <input type="hidden" name="sfl" value="wr_8">

    <select name="stx">
        <option value="">시도</option>
        <option value="EU" <?php echo ($_GET['stx'] == 'EU') ? 'selected' : ''; ?>>EU</option>
        <option value="Reseller" <?php echo ($_GET['stx'] == 'Reseller') ? 'selected' : ''; ?>>Reseller</option>
    </select>

    <select name="wr_9">
        <option value="">wr_9 선택</option>
        <option value="활성화고객" <?php echo ($_GET['wr_9'] == '활성화고객') ? 'selected' : ''; ?>>활성화고객</option>
        <option value="유지고객" <?php echo ($_GET['wr_9'] == '유지고객') ? 'selected' : ''; ?>>유지고객</option>
    </select>

wr_8은 검색이 잘되는데 9는 검색이 안되는데 이유좀 알수있을까요?


<form name="fsearch" method="get">
    <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
    <input type="hidden" name="sca" value="<?php echo $sca ?>">
    <input type="hidden" name="sop" value="and">
    <input type="hidden" name="sfl" value="wr_8">
 
    <select name="stx">
        <option value="">시도</option>
        <option value="EU" <?php echo ($_GET['stx'] == 'EU') ? 'selected' : ''; ?>>EU</option>
        <option value="Reseller" <?php echo ($_GET['stx'] == 'Reseller') ? 'selected' : ''; ?>>Reseller</option>
    </select>

    <select name="wr_9">
        <option value="">wr_9 선택</option>
        <option value="활성화고객" <?php echo ($_GET['wr_9'] == '활성화고객') ? 'selected' : ''; ?>>활성화고객</option>
        <option value="유지고객" <?php echo ($_GET['wr_9'] == '유지고객') ? 'selected' : ''; ?>>유지고객</option>
    </select>
 <button type="submit" value="검색" class="sch_btn"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">검색</span></button>
 </form>

*폼 수정: wr_1, wr_2, wr_8 각각의 값을 선택할 수 있도록 3개의 select 박스를 추가.

*서버로 전달 방식: get 방식으로 선택된 값들을 전달해야 하며, 각각의 필드 이름, 값을 구분

*백엔드 처리: 전달된 값들을 기준으로 AND 조건으로 조합하여 검색 쿼리를 작성.

 

HTML 폼의 수정 예제(search_form.html)

<form name="fsearch" method="get">
    <!-- 기본 설정 -->
    <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
    <input type="hidden" name="sca" value="<?php echo $sca ?>">
    <input type="hidden" name="sop" value="and">
    <!-- wr_1 선택 -->
    <select name="wr_1">
        <option value="">wr_1 선택</option>
        <option value="value1">Value 1</option>
        <option value="value2">Value 2</option>
    </select>
    <!-- wr_2 선택 -->
    <select name="wr_2">
        <option value="">wr_2 선택</option>
        <option value="value1">Value 1</option>
        <option value="value2">Value 2</option>
    </select>
    <!-- wr_8 선택 -->
    <select name="wr_8">
        <option value="">wr_8 선택</option>
        <option value="EU">EU</option>
        <option value="Resseller">Resseller</option>
    </select>
    <!-- 검색 버튼 -->
    <button type="submit">검색</button>
</form>
선택지 값을 허용된 값으로 제한 -필요한 선택지를 추가할 수 있음.

<select name="wr_1">
    <option value="">wr_1 선택</option>
    <option value="value1">Value 1</option>
    <option value="value2">Value 2</option>
</select>

 

wr_1, wr_2, wr_8 값이 각각 전달될 수 있도록 설계하였으므로, (서버에서의 처리)

PHP에서는 각 값이 있는지 확인하고, 조건을 조합하여 검색 쿼리를 작성

/bbs/search.php(그누보드 경우)


<?php
try {
    // 데이터베이스 연결
    $pdo = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password', [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
    ]);
    // 조건 초기화
    $fields = ['wr_1', 'wr_2', 'wr_8'];
    $allowed_values = [
        'wr_1' => ['value1', 'value2'],
        'wr_2' => ['value1', 'value2'],
        'wr_8' => ['EU', 'Resseller']
    ];
    $conditions = [];
    $params = [];
    // 유효성 검사 및 조건 추가
    foreach ($fields as $field) {
        if (!empty($_GET[$field]) && in_array($_GET[$field], $allowed_values[$field])) {
            $conditions[] = "{$field} = :{$field}";
            $params[":{$field}"] = $_GET[$field];
        }
    }
    // 조건 조합
    $where_clause = $conditions ? "WHERE " . implode(" AND ", $conditions) : "";
    // 쿼리 실행
    $sql = "SELECT * FROM your_table {$where_clause}";
    $stmt = $pdo->prepare($sql);
    foreach ($params as $key => $value) {
        $stmt->bindValue($key, $value);
    }
    $stmt->execute();
    // 결과 출력
    $results = $stmt->fetchAll();
    if ($results) {
        foreach ($results as $row) {
            echo "<p>" . htmlspecialchars($row['wr_subject']) . "</p>";
        }
    } else {
        echo "<p>검색 결과가 없습니다.</p>";
    }
} catch (PDOException $e) {
    echo "데이터베이스 오류: " . htmlspecialchars($e->getMessage());
}
?>

 

운영 환경에 적합한 데이터베이스 정보와 테이블 구조 확인 후 사용하셔야 합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 1
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT