2016-08-18 2 views
0

PHP를 사용하여 두 개의 드롭 다운 메뉴가 모두 mysql 데이터베이스의 드롭 다운 내용을 가져옵니다. 나는 jquery 유형의 남자가 아니지만 이것이 필요하다는 것을 알고 있습니다. 그래서 dropdown1 선택에 따라 dropdown2 쿼리를 변경하고 싶습니다. 여기에 두 개의 드롭 다운 코드가 있습니다. 프레임 워크를 사용하고 있지 않습니다. 나는 codeigniter를 사용하지 않는다. 왜냐하면 지금은 어떻게 사용하는지 알지 못하기 때문이다.PHP를 사용하여 dropdown1 선택을 기반으로 dropdown2 쿼리를 변경하십시오.

DROPDOWN1

$sql = "SELECT distinct country_id, country_name FROM country"; 
$res = mysqli_query($conn,$sql); 
echo "<option>-- Select Country --</option>"; 
    while ($row = mysqli_fetch_array($res)) 
    { 
    echo "<option value=".$row['country_id'].">" . $row['country_name'] . "</option>"; 
    } 

DROPDOWN2

$sql = "SELECT distinct state_id, state_name FROM state"; 
$res = mysqli_query($conn,$sql); 
echo "<option>-- Select State --</option>"; 
while ($row = mysqli_fetch_array($res)) 
    { 
    echo "<option value=".$row['state_id'].">" . $row['state_name'] . "</option>"; 
    } 

내가

$sql = "SELECT distinct state_id, state_name FROM state"; 

으로 변경이 줄을 생각하고
$sql = "SELECT distinct state_id, state_name FROM state where country=" dropdown1 selected something; 

하지만 어디에서 시작해야할지 모르겠다.

내 index.php를

<html> 
<head> 

    <!-- Theme style --> 
    <link href="67828d6d/css/bootstrap.css" rel="stylesheet"> 
    <link href="ffa4e0f4/css/AdminLTE.css" rel="stylesheet"> 
    <link href="ffa4e0f4/css/font-awesome-4.3.0/css/font-awesome.min.css" rel="stylesheet"> 
    <link href="ffa4e0f4/css/ionicons-2.0.1/css/ionicons.min.css" rel="stylesheet"> 
    <link href="ffa4e0f4/css/bootstrap-multiselect.css" rel="stylesheet"> 
    <link href="ffa4e0f4/css/EdusecCustome.css" rel="stylesheet"> 
    <script src="efec5552/jquery.js"></script> 
    <script src="c3380d9d/yii.js"></script> 
    <script src="67828d6d/js/bootstrap.js"></script> 
    <script src="ffa4e0f4/js/AdminLTE/app.js"></script> 
    <script src="ffa4e0f4/js/plugins/slimScroll/jquery.slimscroll.min.js"></script> 
    <script src="ffa4e0f4/js/bootstrap-multiselect.js"></script> 
    <script src="ffa4e0f4/js/custom-delete-confirm.js"></script> 
    <script src="ffa4e0f4/js/bootbox.js"></script> 
    <script src="ffa4e0f4/js/bootstrap.file-input.js"></script> 
    <script src="ffa4e0f4/js/bootstrapx-clickover.js"></script> 
</head> 
<body> 
    <section class="content"> 
    <div class="col-xs-12"> 
     <div class="col-lg-12 col-sm-12 col-xs-12 no-padding edusecArLangCss"><h3 class="box-title"><i class="fa fa-plus"></i> Add City/Town</h3></div> 
    </div> 


<div class="city-create"> 

<div class="col-xs-12 col-lg-12"> 
    <div class="box-success box view-item col-xs-12 col-lg-12"> 
     <div class="city-form"> 

      <form id="city-form" action="../functions/actions.php" method="post" role="form"> 
       <input type="hidden" name="_csrf" value="OUcxbHdqUDNOIFYkGwV9WU4kQCESPiR2DR5WXTk8Ih54KkhUGSAGXw=="> 
       <div class="col-xs-12 col-lg-12 no-padding"> 
        <div class="col-sm-4"> 
         <div class="form-group field-city-city_country_id required"> 

          <select class="form-control" name="country" > 
           <?php 
            $sql = "SELECT distinct country_id, country_name FROM country"; 
            $res = mysqli_query($conn,$sql); 
            echo "<option>-- Select Country --</option>"; 
            while ($row = mysqli_fetch_array($res)){ 
            echo "<option value=".$row['country_id'].">" . $row['country_name'] . "</option>"; 
            } 
           ?> 
          </select> 
          <p class="help-block help-block-error"></p> 
         </div> 
        </div> 
        <div class="col-sm-4"> 
         <div class="form-group field-city-city_state_id required"> 

          <select class="form-control" name="state"> 
           <?php 
            $sql = "SELECT distinct state_id, state_name FROM state"; 
            $res = mysqli_query($conn,$sql); 
            echo "<option>-- Select State --</option>"; 
            while ($row = mysqli_fetch_array($res)){ 
            echo "<option value=".$row['state_id'].">" . $row['state_name'] . "</option>"; 
            } 
           ?> 
          </select> 

          <p class="help-block help-block-error"></p> 
         </div>   
        </div> 
        <div class="col-sm-4"> 
         <div class="form-group field-city-city_name required"> 

          <input type="text" id="city-city_name" class="form-control" name="city-city_name" maxlength="35" placeholder="City/Town Name" required> 

          <p class="help-block help-block-error"></p> 
         </div> 
        </div> 
       </div> 
       <div class="form-group col-xs-12 col-sm-6 col-lg-4 no-padding edusecArLangCss"> 
        <div class="col-xs-6"> 
         <button type="submit" class="btn btn-block btn-success" name="btnsavetown">Create</button> 
        </div> 
        <div class="col-xs-6"> 
         <button type="reset" class="btn btn-default btn-block">Reset</button> 
        </div> 
       </div> 

      </form>  
     </div> 
    </div> 
</div> 

+0

이 물건을 완성하려면 Ajax와 Php를 사용해야합니다. –

+0

[JQUERY, AJAX 및 PHP를 사용하여 선택 상자 채우기] (http://stackoverflow.com/questions/22991067/populating-a-select-box) -using-jquery-ajax-and-php) – Epodax

+0

가능하지만 중복되지는 않습니다. 나는 코드 점화 장치를 사용하지 않는다. 감사. – PFlorentino

답변

0

는 다음과 같이 코드를 수정합니다.

<div class="col-sm-4"> 
    <div class="form-group field-city-city_country_id required"> 

     <select class="form-control" name="country" id="country"> 
      <?php 
       $sql = "SELECT distinct country_id, country_name FROM country"; 
       $res = mysqli_query($conn,$sql); 
       echo "<option id='countryOpt'>-- Select Country --</option>"; 
       while ($row = mysqli_fetch_array($res)){ 
       echo "<option value=".$row['country_id'].">" . $row['country_name'] . "</option>"; 
       } 
      ?> 
     </select> 

     <p class="help-block help-block-error"></p> 
    </div> 
</div> 
<div class="col-sm-4"> 
    <div class="form-group field-city-city_state_id required"> 

     <select class="form-control" name="state"> 
      <?php 
       $sql = "SELECT distinct state_id, state_name FROM state"; 
       $res = mysqli_query($conn,$sql); 
       echo "div id='drop2'"; 
       echo "<option>-- Select State --</option>"; 
       while ($row = mysqli_fetch_array($res)){ 
       echo "<option value=".$row['state_id'].">" . $row['state_name'] . "</option>"; 
       } 
       echo "</div>"; 
      ?> 
     </select> 

     <p class="help-block help-block-error"></p> 
    </div> 
    <script type="text/javascript"> 
     $('#countryOpt').change(function(){ 
      var optValue = $('#countryOpt option:selected').val(); 
      $.post('dropdown2.php',{val:optValue,type:'POSTREQ'},function(e){ 
      $('#drop2').html(e); 
      }); 
     }); 
    </script>   
</div> 

지금 dropdown2.php라는 새로운 PHP 파일을 작성하고 MySQL의 쿼리가 당신의 요구로 변경 원하는없는 경우가

<?php 

if(isset($_POST['type'])&&$_POST['type']=='POSTREQ'&&isset($_POST['val'])){ 
$state=$_POST['val']; 
$sql = "SELECT distinct state_id, state_name FROM $state"; 
$res = mysqli_query($conn,$sql); 
echo "<option>-- Select State --</option>"; 
    while ($row = mysqli_fetch_array($res)) 
    { 
    echo "<option value=".$row['state_id'].">" . $row['state_name'] . "</option>"; 
    } 
} 

?> 

를이 코드를 붙여 넣습니다.

피. $ .post 함수가 요청을 보낸 파일에서 에코 정보를 모두 가져 오기 때문에 새 PHP 파일을 만들어야합니다.

+0

아니요. 한 가지 형태로만이 작업을하려고합니다. HTML과 PHP는 한 가지 형태로만 존재합니다. 어떻게하면 돼? – PFlorentino

+0

당신은 DROPDOWN1 만 가지고 있다는 것을 의미하고 DROPDOWN1에서 선택한 옵션에 따라 DROPDOWN2를 표시합니까? –

+0

Nope. dropdown1과 2는 get_town_country.php와 동일한 형식으로되어 있습니다. Dropdown1 (country)은 mysql과 dropdown 2 (town)의 데이터를 가져옵니다. 하지만 드롭 다운 1 (국가) 선택한 데이터를 기반으로 드롭 다운 2 (타운) 결과를 필터링하고 싶습니다. – PFlorentino

관련 문제