0

symfony1.4 フォーム テンプレートで jquery ajax を使用して動的依存選択のコードを記述してみてください。ユーザーがドロップダウンリストから選択した最初のフィールド値を取得し、それをphp関数に渡して、2番目のドロップダウンリスト値の選択に使用されるデータを取得できるコードを作成しました。PHP 関数から ajax 関数に戻り値を渡すことはできますが、この値を使用してドロップダウン リストの値を選択することはできません。

ここで私は私のコードを与えました。提案してください。

コード:

_form.php

<script type="text/javascript">
    jQuery(document).ready(function() {
    $("#application_program_institution_program_id").change(function(){
            var id=$(this).val();
            if(id != '')  {
              $.ajax({
                    type: "POST",
                    url: '<?php echo url_for('Application/Program'); ?>'+ '?id=' + id,      
                    cache: false,
                    success: function(data)
                    {
                          alert(data);// its show my returned value

                         $("#application_campus_campus_id").val(data);// but it does not select the value of dropdown list.

                    }   
                });
            }
        });
    });

</script>

アプリケーションアクションクラス

public function executeProgram(sfWebRequest $request) {
        $id = intval($request->getParameter('id'));
        $campusList = InstitutionCampus::getCampus($id);
        return $this->renderPartial('result', array('campusList' => $campusList));

    }

getCampus コード:

 public static function getCampus($id) {
         $resultset = Doctrine_Query::create()
                    ->select('ip.id as id, ip.program_code as title, ic.id as ip, ic.campus_name as campusname, icp.institution_campus_id')
                    ->from('InstitutionCampusProgram icp')
                    ->innerJoin('icp.InstitutionProgram ip')
                    ->innerJoin('ip.Institution i')
                    ->innerJoin('icp.InstitutionCampus ic')
                    ->where('ip.all_campus = ?', '0')
                    ->andWhere('i.institution_code = ?', CodeUtil::UttaraUniversity)
                    ->andWhere('icp.institution_program_id =?', $id)
                    ->execute();
             foreach ($resultset as $prog){
                 $result = $prog->ip;
             }


        return $result;         
     }

}

_result.php コード:

<?php echo $campusList; ?>   
4

1 に答える 1

2

上記はうまくいくはずですが、これも試してください:

<script type="text/javascript">
jQuery(document).ready(function() {
$("#application_program_institution_program_id").change(function(){
    var id=$(this).val();
        if(id != '')  {
        var r =  $.ajax({
                type: "POST",
                url: '<?php echo url_for('Application/Program'); ?>'+ '?id=' + id,      
            });
            $("#application_campus_campus_id").val(r);
        }
    });
});

また、単一の値が返される場合は、getCampus.php コードの最後の行を return $result から return $result[0] に変更します。それ以外の場合は、配列を返すため、php 配列を javascript 配列に変更する必要があることに注意してください。 json_encode を使用して実行できます。

于 2013-05-28T10:28:58.213 に答える