Welcome Guest, Not a member yet? Register   Sign In
AJAX cascading drop down, cant use set_select to repopulate form
#1

[eluser]Unknown[/eluser]
Hello, I am having some difficulties repopulating a form if a user triggers the error validation rules. It works fine on all apart from my AJAX drop down. If anyone could help point me in the right direction I would be very grateful.

So basically when a user clicks on a drop down item, it populates another list below it. The problem is that it does not repopulate and select the right one.

here is my javascript
Code:
function populateProjects(s)
{
    employer_id = document.getElementById('employer').value ;
     xmlHttp=GetXmlHttpObject()
   if (xmlHttp==null)
   {
       alert ("Browser does not support HTTP Request");
       return ;
    }
     var url="http://localhost/admin/index.php/manage_activity/cascading_dropdown/";
        url=url+employer_id;
    
    
    xmlHttp.open("GET",url,true);
    xmlHttp.onreadystatechange=sectionStateChanged ;
    xmlHttp.send(null);
    }

function sectionStateChanged()
{
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")
     {
         //alert(xmlHttp.responseText) ;
             //document.getElementById('lblcategory')[removed]=xmlHttp.responseText ;
             document.getElementById('td_Version1')[removed]=xmlHttp.responseText ;
     }
    
}

function GetXmlHttpObject()
{
    var xmlHttp=null;
    try
     {
     // Firefox, Opera 8.0+, Safari
     xmlHttp=new XMLHttpRequest();
     }
    catch (e)
     {
     //Internet Explorer
     try
  {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
     catch (e)
  {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
}
return xmlHttp;
}


here is my controller which then uses a library called getproject

Code:
public function index(){
        //get ID for drop down list
        $employer_id = $this->uri->segment(3);
        $data['plist'] = $this->project->get_projects($employer_id);
        $data['eid'] = $employer_id;
        $this->load->view('header_view');
        $data['activity_type'] = $this->list_activity();
        $data['staff'] = $this->user->get_users();
        $employer = $this->employer->get_employers();
        $data['employer'] = $this->employer->get_an_employer($employer_id);
        $data['employerlist'] = $employer;
        $this->load->view('manageactivity_view',$data);
        }
        
        public function cascading_dropdown(){
        $employer_id = $this->uri->segment(3);
        $params=array(
                      'employer_id' =>$employer_id
                      );
        
        $this->load->library('getproject');
        $this->getproject->get_list($params);            
        }

here is my getproject library

Code:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Getproject {
    function get_list($params){
        $CI =& get_instance();

        $retval = "<select  name='project' id='project'>";
        $retval .= "<option selected=\"selected\" value='' width='130' style=\"width:130px\" >Please Select</option>";
        $employer_id = $params['employer_id'];
        $plist = array();
        $plist = $CI->project->get_projects($employer_id);

         foreach($plist as $project){
             $id = $project['id'];
             $name = $project['name'];
             $retval .= "<option value='".$id.'" '. set_select("project", $id) .'>'.$name."</option>";  
         }
         echo $retval ;    
    }
}
?&gt;

here's the view part
Code:
<td>Project</td>
         <td id='td_Version1'>
                  <select name="project" id="project">
                  <option selected="selected">Please Select</option>
                    &lt;?php
                
                    foreach($plist as $array)
                     {
                      $id    = $array['id'];
                      $name = $array['name'];
                      echo "<option value='".$id.'" '. set_select("project", $id) .'>'.$name."</option>";
                   }
                ?&gt;
                </select>
            </td>


I have tried many different ways like repassing in the employer ID to the javascrpt function but nothing seems to work 100%.




Theme © iAndrew 2016 - Forum software by © MyBB