如何使用JavaScript和PHP动态触发onChange事件

fsi0uk1n  于 2023-09-29  发布在  PHP
关注(0)|答案(2)|浏览(118)

我正在从我的数据库中获取数据。我需要当数据获取一个JavaScript函数将通过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>

这里我需要当数据从数据库中提取Answer Type下拉字段将设置一些值。作为第二下拉列表(即Scale)取决于第一个下拉列表,我需要调用selectScale函数,该函数已使用onChange事件触发。

oipij1gg

oipij1gg1#

我认为你可以为你的第一个下拉菜单documentready调用onchange事件,这样你的第二个下拉列表值就会被选中。

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

也许这对你有帮助。

jvlzgdj9

jvlzgdj92#

正如我所理解的,您需要的只是将这一行添加到您的javascript中

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

这个解决方案也可以工作,通过使用jQuery触发更改功能

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

相关问题