2016-05-17 4 views
1

私はDBからデータを取得していますが、データがonChangeイベントを介して呼び出されるJavaScript関数をフェッチする必要があります。私はデータをDBからフェッチされたときにフィールドダウンAnswer Typeドロップは、いくつかのvalue.Asで2つ目のドロップダウン・リスト(IE-Scale)を設定します必要javascriptとPHPを使用してonChangeイベントを動的にトリガーする方法

ここ
<?php 
    $id=$_GET['ids']; 
    if($id!=""){ 
    $getcustomerobj = $dbobj->getFeedbackData($db,$id); 
    } 
?> 

    <div style="width:24%; float:left; padding:10px;">Answer Type : 
<select class="form-control" id="answer_type" name="answer_type" onChange="selectScale(this.value);"> 
<option value="">Select Answer Type</option> 
<?php 
$ustatus=array("status"=>'1'); 
$feeddata=$db->kf_answertype->find($ustatus); 
foreach($feeddata as $v){ 
?> 
<option value="<?php echo $v['_id']; ?>" <?php if($getcustomerobj->answer_type == $v['_id'] or $_REQUEST['answer_type'] == $v['_id']){ print 'selected'; } ?>><?php echo $v['answertype']; ?></option>       
<?php } ?> 
</select> 
</div> 
<div style="width:24%; float:left; padding:10px; display:none;" id="scaleid">Scale : 
<select class="form-control" id="nscale" name="noofscale"> 
<option value="">Select No Of Scale</option> 
<?php 
$status=array("status"=>'1'); 
$feeddata=$db->kf_scale->find($ustatus); 
foreach($feeddata as $v){ 
?> 
<option value="<?php echo $v['_id']; ?>" <?php if($getcustomerobj->no_of_scale == $v['_id'] or $_REQUEST['no_of_scale'] == $v['_id']){ print 'selected'; } ?>><?php echo $v['noofscale']; ?></option>       
    <?php } ?> 
    </select> 
</div> 

<script> 
    function selectScale(id){ 
    console.log('select scale',id); 
    var data=$.param({'op':'getscale','sid':id}); 
    $.ajax({ 
     method:'POST', 
     url:"dbcon/DBConnection.php", 
     data:data 
    }).done(function(msg){ 
     //console.log('msg',msg); 
     var dedata=JSON.parse(msg); 
     //console.log('decode',dedata); 
     if(dedata[0]['data']==1){ 
      document.getElementById("scaleid").style.display="block"; 
     } 
     if(dedata[0]['data']==0){ 
      document.getElementById("scaleid").style.display="none"; 
     } 
    }); 
} 
</script> 

さは、最初のドロップダウンに依存し、私はselectScaleを呼び出す必要がありますonChangeイベントを使用して起動した関数。私を助けてください。

+0

'のonChangeを(使用して変更機能をトリガすることによって、仕事ができます) 'イベントは、' $( '#answer_type')。change() 'のように手動で起動することができます。これはanswer_typeドロップダウンのchangeイベントを呼び出します。 – dreamweiver

+0

どのように私はこれをPHPで行います。私の必要条件は、 '$ getcustomerobj = $ dbobj-> getFeedbackData($ db、$ id);を使ってデータを取得するときです。 – satya

+0

PHPはサーバー側、Javascriptはクライアント側です。あなたはPHPからJavascriptを呼び出すことはできません。それは別の方法で動作します。 – aifrim

答えて

0

文書の最初のドロップダウンのためにonchangeイベントを呼び出すことができますので、これに基づいて2番目のドロップダウン値が選択されます。

$(document).ready(function(){ 
    $("#answer_type").trigger("change"); 
    }); 

これはお役に立ちます。

0

私は理解しているものを、あなたは、単にである必要があるか、あなたのJavaスクリプト

selectScale($('#answer_type').val()); 

に次の行を追加するとまた、このソリューションは、jQueryの

$("#answer_type").trigger("change"); 
+0

@ SamyMassoud:ここで私は' Answer Type'ドロップダウンが ' ?php if($ getcustomerobj-> answer_type == $ v ['_ id']または$ _REQUEST ['answer_type'] == $ v ['_ id']){print 'selected'; }?>><?php echo $ v ['answertype']; ?> <?php}? '与えられた関数は自動的に呼び出すべきです。 – satya

関連する問題