2013-05-28 3 views
0

내 사이트에서 검색 필터링에 대한 사용자 정의 form을 작성했습니다. 숨겨진 입력 필드를 사용하여 검색 필터의 유형을 선택합니다. 값은 전달되는 나는 가치가 무엇인지 내 검색 페이지에 확인하고 다음과 같이 정확한 검색 결과 페이지에 직접 : 여기 어떤 숨겨진 입력 값이 전달되는지 결정

<?php 

    $search_refer = $_GET['search_type']; 

    if($search_refer == 'members') { 
     load_template(TEMPLATEPATH . '/search-members.php'); 
    } else if($search_refer == 'event') { 
     load_template(TEMPLATEPATH . '/search-member-event.php'); 
    } else { 
     load_template(TEMPLATEPATH . '/search-site.php'); 
    } 

?> 

는 HTML/PHP에있는 두 개의 필드입니다

<div class="state"> // Sorting by user State 
    <input type="hidden" name="search_type" value="members"> 
    <select id="stateDrop" name="state"> 
     <option value="">State</option> 
     <?php 
      foreach($states as $state) { 
       echo '<option value="'.$state.'">'.$state.'</option>'; 
      } 
     ?> 
    </select> 
</div> 
<div class="sort-event"> // Sorting by an Event 
    <input type="hidden" name="search_type" value="event"> 
    <select id="eventDrop" name="event"> 
     <option value="">Event</option> 
     <?php 
      $args = array(
       'post_type' => 'events', 
       'order' => 'ASC' 
      ); 

      $eQuery = new WP_Query($args); 

      while($eQuery->have_posts()) : $eQuery->the_post(); 

       echo '<option value="'.$eQuery->post->post_title.'">'.$eQuery->post->post_title.'</option>'; 

      endwhile; 

      wp_reset_query(); 
     ?> 
    </select> 
</div> 

두 가지 모두 숨겨진 이름으로 search_type이라는 이름이 있지만 값이 다릅니다. membersevent. 내 문제는 제출 버튼을 클릭 할 때 수신되는 값이 항상 마지막 숨겨진 입력 값입니다. 예 : event.

검색 결과를 올바른 페이지로 보낼 수 있도록 선택한 필드를 결정하는 방법이 있습니까? (검색 페이지는 검색을 기반으로 다른 정보를 가져옵니다). 같은 이름을 가진 두 개의 입력을 가지고

감사합니다,

+5

양식에 같은 이름의 입력이 2 개있을 수 없습니다. –

+0

disabled = "disabled"attr 체크 아웃 –

답변

2

는, 그 중 하나는 지금까지 서버로 설정됩니다.

당신은 그들이 당신이 두 개의 별도 제출 버튼을 필요로하지만 같은 페이지로 이동 것이다, POST 및 두 가지 형태를 사용하는 것이 필요 해요 동일한 이름을 사용합니다. 이렇게하면 필터를 기반으로 원하는 양식을 제출할 수 있습니다.

<form action="yourpage.php" method="post"> 
     <input type="hidden" name="search_value" value="members"/> 
     ... member stuff 
     <input type="submit" value="Filter Members"/> 
</form> 
<form action="yourpage.php" method="post"> 
     <input type="hidden" name="search_value" value="event"/> 
     ... event stuff 
     <input type="submit" value="Filter Events"/> 
</form> 

또는 그 단 하나의 값이 한 번에 선택할 수 있습니다와 같은 이름을 가진 지원하는 당신은 라디오 버튼의 입력 유형을 사용할 수 있습니다. 당신이 GET을 고수하고자하는 경우

Event: <input type="radio" name="search_type" value="event"/> 
Members: <input type="radio" name="search_type" value="members"/> 



// Then in PHP $_POST["search_type"] will hold the selected value. 

, 사용자가 링크를 클릭하기 전에 하나의 숨겨진 요소의 값을 설정하기 위해 자바 스크립트를 사용할 수 있습니다.

+0

입력 사항을 드롭 다운 목록으로해야하기 때문에 Javascript를 사용해야 할 것입니다. – Romes

+1

@ Roomes이 경우 숨겨진 요소를 원하는 값으로 업데이트하는 선택 상자에 "OnChange"이벤트를 첨부 할 수 있습니다. – MatthewMcGovern

+0

좋은 계획, 감사와 같은 소리. – Romes

관련 문제