2016-09-06 2 views
-2

私はdinamicドロップダウンオプションを作成する必要があります。 2番目の選択は最初の入力に依存します。 cakephpアプリからコントローラーの動作にajaxリクエストをしたいのですが、私はajaxコードに悩まされています。phpのAjaxリクエスト

は、私が試してみてください。

<?= $this->Form->select('country_id' ,$optionsCountry, ['id' => 'country_id'], 'onclick' => 'getcit'); ?> 

<?= $this->Form->select('Cities', $optionsCities); ?> 

私は選択オプションの変化に呼び出される関数のウィッヒを作成したいが、私はstucked私より。私は、HTML内の関数を呼び出すするかどうかはわかりません

<script> 
function getcities(str){ 
    var xhttp; 
    xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange = function(){ 
     xhttp.open('POST', 'controller' => 'cities', 'action' => 'getcit',+str , true); 
     xhttp.send(); 
    } 
} 

、ONCHANGE? onselect? 最初の入力からデータをフェッチし、コントローラのアクションに送信し、コントローラからデータをフェッチし、別の選択に設定する方法は?

は、私はのように多分simplierソリューションをjquery.ajax見つけ

敬具を、ありがとうしかし、私は再びstucked: - どのように:

<script> 
$(document).ready(function){ 
    $('#country_id').change(function() { 
     $.ajax({ 
      url: "", 
      data: "", 
      type: 'POST' 
     }); 
    }); 
} 
; 

は、あなたが私を助けることができます最初の選択からデータをフェッチする - コントローラーに転送する - 戻り値をseconに設定する

+0

[ここ](https://developer.mozilla.org/en-US/docs/Web/Events)はイベントのリストです。 'someElement.onXXX'は適切なタイミングでそれを呼び出します。残りの質問については、あなたが試したことについてもっと詳しく説明してください。そうすれば、人々はあなたの問題を理解することができます。 – Actorclavilis

答えて

1

あなたは二<select>ためのデータを返す最初の<select>変更後のAJAX呼び出しを作成する必要があり、ありがとうございます。

function getcities(id) { 
    $.ajax({ 
     method: 'POST', 
     url: 'some.php', 
     data: { 
      country_id: id 
     }, 
     success: function (data, status) { 
      $('.second_select').html(data); // If returns as html 
     } 
    }); 
    return; 
}