Reputation: 937
I am able to insert the correct birthday in the database of what is selected in the dropdown menu. When the page reloads after successfully updating the database only the year portion of the birthday drop downs is showing up. Why is this the case? I am using the same simple logic for all three.
// CONTROLLER
if($this->form_validation->run() == FALSE )
{
$data['main_content'] = 'account/edit';
$this->load->view('includes/templates/main_page_template', $data);
}
else
{
$birthdate = $this->input->post('month'). "-" .$this->input->post('day'). "-" .$this->input->post('year');
echo $birthdate;
$save_data = array(
'relation' => $this->input->post('relation'),
'location' => $this->input->post('location'),
'birthday' => date('Y-m-d',strtotime($birthdate)),
'gender' => $this->input->post('gender'),
'mylife' => $this->input->post('mylife'),
'occupation' => $this->input->post('occupation'),
'hobbies' => $this->input->post('hobbies'),
'books' => $this->input->post('books'),
'music' => $this->input->post('music'),
'movies' => $this->input->post('movies'),
'quote' => $this->input->post('quote'),
'mycysticlife' => $this->input->post('mycysticlife'),
'medicines' => $this->input->post('medicines'),
'treatments' => $this->input->post('treatments'),
'PFTs:FVC' => $this->input->post('PFTs:FVC'),
'FEV1' => $this->input->post('FEV1'),
'mutation' => $this->input->post('mutation'),
'twitter' => $this->input->post('twitter'),
'myspace' => $this->input->post('myspace'),
'facebook' => $this->input->post('facebook'),
'blogspot' => $this->input->post('blogspot'),
'youtube' => $this->input->post('youtube'),
'url' => $this->input->post('url'),
'city' => $this->input->post('city'),
);
$query = $this->account_model->update_edit($user['id'],$save_data);
$data['main_content'] = 'account/profile';
$this->load->view('includes/templates/main_page_template', $data);
}
}
}
// VIEW
<?php
echo month_dropdown('months', $user['birthday'])." ".day_dropdown('days', $user['birthday'])." ".year_dropdown('year', $user['birthday']);
?>
// FORM HELPER
function month_dropdown($month="month", $top_month='' ) {
$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='{$month}'>";
foreach($months as $key => $month){
$selected = "";
//this will match for selected value and set the selected attribute
if( $key == $top_month ) {
$selected = "selected='selected'";
}
$html .="<option value='{$key}' $selected>{$month}</option>";
}
$html .="</select>";
return $html;
}
function day_dropdown($day="day", $top_days="") {
$days = array(
"choose"=>"Day",
"01"=>"01",
"02"=>"02",
"03"=>"03",
"04"=>"04",
"05"=>"05",
"06"=>"06",
"07"=>"07",
"08"=>"08",
"09"=>"09",
"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='{$day}'>";
foreach($days as $key => $day){
$selected = "";
if( $key == $top_days ) {
$selected = "selected='selected'";
}
$html .="<option value='{$key}' $selected >{$day}</option>";
}
$html .="</select>";
return $html;
}
function year_dropdown($year="year", $top_years='') {
$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='{$year}'>";
foreach($years as $key => $year){
$selected = "";
if( $key == $top_years ) {
$selected = "selected='selected'";
}
$html .="<option value='{$key}' $selected >{$year}</option>";
}
$html .="</select>";
return $html;
}
// MODEL
public function update_edit($id,$data)
{
$this->db->where('id', $id);
$this->db->update('users', $data);
}
}
thanks in advance
Upvotes: 0
Views: 116
Reputation: 18705
Just looked at the code a little closer and I see this line and assume it's the one giving you the issues?
echo month_dropdown('months', $user['birthday'])." ".day_dropdown('days', $user['birthday'])." ".year_dropdown('year', $user['birthday']);
That variable should be returning a date in the format you saved it is so for me it would return 09-12-1967 which likely isn't legitimate values for your drop downs. You could explode that out then populate the drop downs like this:
$birthdate = explode('-',$user['birthday']);
echo month_dropdown('months', $birthdate[0])." ".day_dropdown('days', $birthdate[1])." ".year_dropdown('year', $birthdate[2]);
That should work
Upvotes: 1