2016-04-13 182 views
-1

這是我的代碼爲多個下拉菜單。動態選擇下拉Wordpress通過高級自定義字段

我有兩個下拉菜單,一個用於城市和其他區域。

所以當有人選擇一個城市時,Area下拉菜單應該會自動填充。

這是URL

http://ctclick.com/category/

<? 

$field_key = "field_570e68df39304"; 
$field = get_field_object($field_key); 


if($field == 'pune') 

    { 
     $field_key = "field_570e68df39304"; 
     $field = get_field_object($field_key); 
      if($field) 
       {  
        echo '<select name="city" class="form-control" id="city">';   
        foreach($field['choices'] as $k => $v)   
         { 
          echo '<option value="' . $k . '">' . $v . '</option>';   
         }  
          echo '</select>'; 
       } 
    } 

elseif ($field == 'akola') 
    { 
     $field_key = "field_570e691b39305"; 
     $field = get_field_object($field_key); 
     if($field) 
      {  
       echo '<select name="city" class="form-control" id="city">';   
        foreach($field['choices'] as $k => $v)   
         {    
          echo '<option value="' . $k . '">' . $v . '</option>';   
         }  
          echo '</select>'; 
      } 
    } 
else 
{ 
    ?> 
    <select class="form-control"> 
    <option>Select Area</option> 
    </select> 
    <? 
} 

?> 
+0

任何你的問題是......? – j08691

+0

對這裏的用戶有一點點的尊重,試圖幫助你,並在重新設置你的代碼上付出了一些努力 –

+0

我重新格式化了它...請檢查現在 – user3323829

回答

0

在這種情況下,你可能將不得不使用一些Ajax在你的代碼,這樣,當你改變了第一個下拉菜單中的值,它會觸發一個ajax調用。要做到這一點,你必須包括一些JavaScript這樣

$('#city_dropdown').change(function() { 
    jQuery.ajax({ 
     url: "/wp-admin/admin-ajax.php", 
     type: 'POST', 
     data: { 
      action: 'get_city_areas', 
      city_id: $(this).val(),    
     }, 
     dataType: 'html', 
     success: function (result) { 
      $('#area-dropdown').html(result) 
     }, 
     error: function (errorThrown) { 
      console.log(errorThrown); 
     } 
    }) 
}); 

正在發生的事情有,當你的城市下拉發生變化時,它會觸發一個Ajax請求得到所有相關領域。 WordPress中的Ajax通過admin-ajax系統完成。你可以在這裏閱讀更多的是:https://codex.wordpress.org/AJAX_in_Plugins

在你的functions.php文件,你可以添加以下注冊一個Ajax調用來檢索城區

add_action('wp_ajax_get_city_areas', 'handle_get_city_areas'); 
add_action('wp_ajax_nopriv_get_city_areas', 'handle_get_city_areas'); 
/** 
* Handle the list of areas 
*/ 
function handle_get_city_areas(){ 
    $city_id = $_POST['city_id']; 
    //Using the city ID, retrieve the related areas 
    //and then echo the new select menu 
} 

這將有助於你得到你在找什麼對於。

相關問題