CodeIgniter - 根据点击的 link 从下拉列表中预先 select 一个值

CodeIgniter - pre select a value from dropdown based on link clicked

我需要一些帮助。我有这个 link

<?php echo anchor('contact#apply', 'Apply for Job'); ?>

在我的 Careers 页面/视图中,重定向到 Contact,我的表单中有这个下拉菜单

$reasons = array(
            'request-feedback'  => 'I'd like more information please',
            'request-a-demo'=> 'I want a demo of your services', 
            'work-with-us'  => 'I am interested in working for youy company', // * this is the option I'm interested in
);
<?php echo form_label('Reason for getting in touch with us', 'reason'); ?>
<?php echo form_dropdown('reason', $reasons, null, 'class="form-control"'); ?> // * when user applies for job should have the 3rd option pre selected instead of null
<?php echo form_error('topic'); ?>

我想做的是当用户点击 link 将他重定向到联系表单并预先选择 work-with-us 选项时, 但仅在这种情况下,在任何其他情况下,默认值应该是第一个。

我该怎么做?

注:CareersContact pages都是这种结构

careers/index // i.e. controller/method
contact/index

所以基本上有两个不同的控制器

你可以这样操作。在url里面应该有一个'id'来标识它来自'contact/apply' link.You可以这样

<?php echo anchor('contact/apply?id=contact', 'Apply for Job'); ?>

在 'contact' 控制器的 'apply' 方法中,它可以检查 id

public function apply(){
   if(isset($_GET['id'])){
     $id=$_GET['id'];
     if($id=='contact'){
      $selected='work-with-us';
     }
     else{
       $selected='request-feedback';
     }
 }
 else{
   $selected='request-feedback';
 }

  //the data send to view page
  $data['selected_val']=$selected;
  $this->load->view('view_page', $data);
}

然后在你的'view_page'相关下拉菜单中,可以设置选择的值

<?php echo form_dropdown('reason', $reasons, $selected_val, 'class="form-control"'); ?>

希望这会有所帮助。

第二种情况..

<?php if($selected_val!='work-with-us'){ ?>
   <script>
     $(document).ready(function(){
         $("#depend_on_select").hide();
     });
   </script>
<?php } ?>

<div id="depend_on_select">
   <input type="file" name="cv">
</div>

这里包含cv的div只会显示$selected_val='work-with-us'.