phpcodeignitercodeigniter-urldropdownbox

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


I'd like some help please. I'm having this link

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

in my Careers page /view, which redirects to the Contact, where I have this dropdown menu in my form

$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'); ?>

What I'd like to do is when a user clicks on that link to redirect him to the contact form and have the work-with-us option pre selected, but only in this case, in any other case the default should be the first one.

How can I do this ?

Note: both Careers and Contact pages have this structure

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

so basicaly there are two different controllers


Solution

  • You can do this in this way. In the url, there should be an 'id' to identify that it coming from 'contact/apply' link.You can do it in this way

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

    in your 'apply' method in 'contact' controller, it can check the 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);
    }
    

    then in your 'view_page' in the relevant drop down, it can set the selected value

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

    Hope this will help.