1

選択したラジオ ボタンは、対応する都市のリストをドロップダウン ボックスで表示します。たとえば、ラジオ ボタン「オンタリオ」を選択すると、一致する都市のドロップダウン ボックスが表示されます (この例では、「地域」はオンタリオで ID は 77 です)。

以下の例で説明されているすべての PHP 関数、ループ、および JavaScript コードは、正しく機能しています。

<script type="text/javascript">
$(document).ready(function(){
  $('#locationTree input:radio').change(function() {
    var buttonPressed = $('input:radio[name=Region]:checked').val();

    if(buttonPressed == 77) {
      var listCities = $("select[name='City']");
      <?php View::newInstance()->_exportVariableToView(77); ?>
      <?php while(has_list_cities()) { ?>
        $("<option><?php echo list_city_name(); ?></option>").appendTo(listCities);
      <?php } ?>                
    } 

  });   
});
</script>  

具体的には 77 ではなく、さまざまな地域別の都市のリストを取得するには、次のように PHP コードを少し変更します。

 <?php View::newInstance()->_exportVariableToView($regionCode); ?>

変数「buttonPressed」は選択された「Region」の ID を検出するため、次の簡単なスクリプトを追加できます。

<?php $regionCode = "<script>document.write(buttonPressed)</script>"; ?>   

上記の変更後:

var listCities = $("select[name='City']");
<?php $regionCode = "<script>document.write(buttonPressed)</script>"; ?>   
<?php View::newInstance()->_exportVariableToView($regionCode); ?>

PHP がサーバー側で実行され、JavaScript がクライアント側で実行されることは知っていますが、PHP と JavaScript の間で変数を交換するための私の単純なソリューションは機能するはずだと思っていましたが、機能しません。私は本当に誰かにそれを機能させるのを手伝ってもらいます。

4

1 に答える 1

2

HTML 5 が提供するデータ属性プロパティを使用して、(サーバーからクライアントへ) 変数を交換します。これは、最初のページの読み込みに対して行います。

最初のページの読み込み後に変数を交換するには、ajax 呼び出しを使用できます。

データ属性の例

PHP 書き込みによる HTML

<div id='universals' data-path='/zz/' data-load='1'></div>

JavaScript

var data_dom = $('#universals')[0],
    key,
    universals = [];
for (key in data_dom.dataset) {
    universals[key] = data_dom.dataset[key];
}
于 2013-01-06T18:31:28.830 に答える