CodeIgniter Forums

Full Version: What's the best way to create a dynamic drop-down and display existing data?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

El Forum

[eluser]RalphLeMouf[/eluser]
Hello -

I am building an edit your profile module on my site right now. When a user signs into their account for the first time after creating it, it takes them to a edit profile page. When a user is already filled out their additional profile information and goes to edit that page, I want to post their already saved info in the pertinent fields and keep them defaulted if untouched.

I understand the php logic needed to complete this task, however I was hoping for recommendations or examples on the cleanest way to do this.

I am also having trouble in figuring out how insert the radio and birthday fields into my database. I am getting "0" values inserted.


I will have all the fields per user stored like so:
Code:
$user['first_name'], $user['email']
etc... that I have made with a different function.

Here is the birthday dropdown in my form helper:

Code:
function month_dropdown($month="month", $top_months=array()) {
$months = array(
   "choose"=>"Month",
   "----------",
   "Jan"=>"Jan",
   "Feb"=>"Feb",
   "Mar"=>"Mar",
   "Apr"=>"Apr",
   "May"=>"May",
   "Jun"=>"Jun",
   "Jul"=>"Jul",
   "Aug"=>"Aug",
   "Sep"=>"Sep",
   "Oct"=>"Oct",
   "Nov"=>"Nov",
   "Dec"=>"Dec"
);

$html = "<select name='{$months}'>";
if(!empty($top_months)){
  foreach($top_months as $value){
   if(array_key_exists($value, $months)){
    $html .="<option value='{$value}'>{$months[$value]}</option>";
   }
  }
  $html .="<option>----------</option>";
}
foreach($months as $key => $month){
  $html .="<option value='{$key}'>{$month}</option>";
}
$html .="</select>";
return $html;

}

function day_dropdown($day="day", $top_days=array()) {
$days = array(
   "choose"=>"Day",
   "----------",
   "1"=>"1",
   "2"=>"2",
   "3"=>"3",
   "4"=>"4",
   "5"=>"5",
   "6"=>"6",
   "7"=>"7",
   "8"=>"8",
   "9"=>"9",
   "10"=>"10",
   "11"=>"11",
   "12"=>"12",
   "13"=>"13",
   "14"=>"14",
   "15"=>"15",
   "16"=>"16",
   "17"=>"17",
   "18"=>"18",
   "19"=>"19",
   "20"=>"20",
   "21"=>"21",
   "22"=>"22",
   "23"=>"23",
   "24"=>"24",
   "25"=>"25",
   "26"=>"26",
   "27"=>"27",
   "28"=>"28",
   "29"=>"29",
   "30"=>"30",
   "31"=>"31"
);

$html = "<select name='{$days}'>";
if(!empty($top_days)){
  foreach($top_days as $value){
   if(array_key_exists($value, $days)){
    $html .="<option value='{$value}'>{$days[$value]}</option>";
   }
  }
  $html .="<option>----------</option>";
}
foreach($days as $key => $day){
  $html .="<option value='{$key}'>{$day}</option>";
}
$html .="</select>";
return $html;

}

function year_dropdown($year="year", $top_years=array()) {
$years = array(
   "choose"=>"Year",
   "----------",
   "1997"=>"1997",
   "1996"=>"1996",
   "1995"=>"1995",
   "1994"=>"1994",
   "1993"=>"1993",
   "1992"=>"1992",
   "1991"=>"1991",
   "1990"=>"1990",
   "1989"=>"1989",
   "1988"=>"1988",
   "1987"=>"1987",
   "1986"=>"1986",
   "1985"=>"1985",
   "1984"=>"1984",
   "1983"=>"1983",
   "1982"=>"1982",
   "1981"=>"1981",
   "1980"=>"1980",
   "1979"=>"1979",
   "1978"=>"1978",
   "1977"=>"1977",
   "1976"=>"1976",
   "1975"=>"1975",
   "1974"=>"1974",
   "1973"=>"1973",
   "1972"=>"1972",
   "1971"=>"1971",
   "1970"=>"1970",
   "1969"=>"1969",
   "1968"=>"1968",
   "1967"=>"1967",
   "1966"=>"1966",
   "1965"=>"1965",
   "1964"=>"1964",
   "1963"=>"1963",
   "1962"=>"1962",
   "1961"=>"1961",
   "1960"=>"1960",
   "1959"=>"1959",
   "1959"=>"1959",
   "1958"=>"1958",
   "1957"=>"1957",
   "1956"=>"1956",
   "1955"=>"1955",
   "1954"=>"1954",
   "1953"=>"1953",
   "1953"=>"1953",
   "1952"=>"1952",
   "1951"=>"1951",
   "1950"=>"1950",
   "1949"=>"1949",
   "1948"=>"1948",
   "1947"=>"1947",
   "1946"=>"1946",
   "1945"=>"1945",
   "1944"=>"1944",
   "1943"=>"1943",
   "1942"=>"1942",
   "1941"=>"1941",
   "1940"=>"1940",
   "1939"=>"1939",
   "1938"=>"1938",
   "1937"=>"1937",
   "1936"=>"1936",
   "1935"=>"1935",
   "1934"=>"1934",
   "1933"=>"1933",
   "1932"=>"1932",
   "1931"=>"1931",
   "1930"=>"1930"
  
);

$html = "<select name='{$years}'>";
if(!empty($top_years)){
  foreach($top_years as $value){
   if(array_key_exists($value, $years)){
    $html .="<option value='{$value}'>{$years[$value]}</option>";
   }
  }
  $html .="<option>----------</option>";
}
foreach($years as $key => $year){
  $html .="<option value='{$key}'>{$year}</option>";
}
$html .="</select>";
return $html;

}

Here is the portion of it in my model being updated into the proper field in the database:

Code:
'birthday' => $this->input->post('birthday'),

and here it is in my view:

Code:
echo month_dropdown($months)." ".day_dropdown($days). " ".year_dropdown($year);

thanks in advance.