2017-05-16 43 views
0

中設置下拉值我有下拉菜單,當其中的任何選項被選中時,應該填充另一個下拉值。根據另一個下拉值在php

我需要檢查第一個下拉值與一些變量,並基於該條件其他下拉值基於它填充。

我的第一下拉,

<select id="mySelect" name="name"> 
     <option>Select any city</option> 
     <?php foreach ($data as $c) { ?> 
     <option><?php echo ($c[0]['value']); ?></option> 
     <?php } ?> 
    </select> 

上午流汗使用jquery上述下拉選擇的值,但我需要在PHP

jQuery("#mySelect").change(function() { 
     ... 
    }); 

對於第二下拉,

<select> 
...... 
if ($myPhpVar == $data[1][$j][$i]['c_name']){ ?> 
    <option><?php echo $data[1][$j][$i]['a_name']; ?></option> 
    <?php } 
.... ?> 
</select> 

這裏$myPhpVar應該是第一個下拉選定的值,我需要將它與一些數據進行比較。

如何獲得第一個下拉值,並將其設置爲$myPhpVar

UPDATE:

管理下拉使用jQuery:

jQuery("#mySelect").change(function() { 
    var end = this.value; 
    var firstDropVal = jQuery('#mySelect').val(); 
    <?php for($j=0; $j<count($data[1]); $j++){ 
     //print_r ($data[1][$j]); 
     for($i=0; $i<count($data[1][$j]);$i++){ 
      if ($myPhpVar == $data[1][$j][$i]['city_name']){ 
      echo $data[1][$j][$i]['area_name']; ?> 
      jQuery('#dsad').append("<option><?php echo json_encode($data[1][$j][$i]['area_name']); ?></option> ") 
      <?php 
      } 
     } 
    } ?> 
    console.log(end); 
    console.log(firstDropVal); 
}); 

對於第二個下拉但是沒有得到下拉值。

+1

你必須發送一個AJAX請求,如果你想修改第二個下拉* *後的用戶選擇了第一個選項。 –

+0

你不能直接使用PHP,而是你將需要1)使用完整的JavaScript來處理這個問題,或者2)提交一個新的http請求來讓php生效或者3)使用ajax – hassan

+0

我該如何處理這個使用javascript? @hassan – Mann

回答

0

您必須編寫一個網絡服務。創建一個新頁面,當第一個下拉菜單(使用AJAX)發生變化時將會調用該頁面。 將選定值傳遞給該頁面以JSON(可能)發送響應。 將響應設置爲其他組件。

jQuery("#mySelect").change(function() { 
    var val = jQuery(this).val(); 
    jQuery.ajax({ 
      url: 'your_new_page.php', 
      data: 'dropvalue='+val, 
      processData: false, 
      type: 'GET', 
      dataType:'json', 
      success: function(response){ 
      //load json data from server use it 
      }, 
      error: function(jqXHR, textStatus, errorThrown) { 
       //there is an error 
      } 
    }); 
}); 

your_new_page.php

if(isset($_GET['dropvalue'])) { 
    $myPhpVar = $_GET['dropvalue']; 
    //do what you want and return the response 
} else { 
    //value not submitted, send an error 
} 
相關問題