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

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

QA

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

답변 3

본문

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

지금 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());
}
?>

 

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

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 0
© SIRSOFT
현재 페이지 제일 처음으로