php - year dropdown section being stored as null -
i couldn't think of decent title - it's clear enough. right, having problem creating year dropdown selector in registration form - work value stored in database remains null when selecting year (i have left optional registrations).
here code:
echo $this->form->input('graduation1', array('label' => 'year of graduation:', 'type' => 'date', 'dateformat' => 'y', 'empty' => true, 'minyear' => 1960, // start year 'maxyear' => date('y') // current ) );
thanks community in advance!
controller code:
function register() { $this->layout = 'login'; $this->set('title_for_layout', 'member registration'); if(!empty($this->data)) { $this->data['user']['group_id'] = 4; $this->user->create(); if($this->user->save($this->data)) { $this->set('user', $this->data['user']['id']); $this->_sendemail('register', 'a new registration has been submitted', 'blah@blah.com'); $this->redirect(array('action' => 'approval')); } else { unset($this->data['user']['password']); unset($this->data['user']['password_confirm']); $this->session->setflash(__('there errors found in registration. please check highlighted fields', true)); } } }
html output:
<div id="grad"> <label>year of graduation:</label> <select name="data[user][graduation1][year]" id="usergraduation1year"> <option value=""></option> <option value="2012">2012</option> <option value="2011">2011</option> <option value="2010">2010</option> <option value="2009">2009</option> <option value="2008">2008</option> <option value="2007">2007</option> <option value="2006">2006</option> <option value="2005">2005</option> <option value="2004">2004</option> <option value="2003">2003</option> <option value="2002">2002</option> <option value="2001">2001</option> <option value="2000">2000</option> <option value="1999">1999</option> <option value="1998">1998</option> <option value="1997">1997</option> <option value="1996">1996</option> <option value="1995">1995</option> <option value="1994">1994</option> <option value="1993">1993</option> <option value="1992">1992</option> <option value="1991">1991</option> <option value="1990">1990</option> <option value="1989">1989</option> <option value="1988">1988</option> <option value="1987">1987</option> <option value="1986">1986</option> <option value="1985">1985</option> <option value="1984">1984</option> <option value="1983">1983</option> <option value="1982">1982</option> <option value="1981">1981</option> <option value="1980">1980</option> <option value="1979">1979</option> <option value="1978">1978</option> <option value="1977">1977</option> <option value="1976">1976</option> <option value="1975">1975</option> <option value="1974">1974</option> <option value="1973">1973</option> <option value="1972">1972</option> <option value="1971">1971</option> <option value="1970">1970</option> <option value="1969">1969</option> <option value="1968">1968</option> <option value="1967">1967</option> <option value="1966">1966</option> <option value="1965">1965</option> <option value="1964">1964</option> <option value="1963">1963</option> <option value="1962">1962</option> <option value="1961">1961</option> <option value="1960">1960</option> </select> </div>
before $this->user->create()
, try var_dump($this->data)
make sure graduation1
indeed posted, if does, make sure field in table called graduation1
-- edit --
if want store single integer (a year), use int field datatype instead of date
-- edit2 -- not sure why cakephp generates name="data[user][graduation1][year]"
try
$yearranges = range(1960, date("y")); echo $this->form->input('user.graduation1', array('label' => 'year of graduation:', 'type' => 'select', 'options' => array_combine($yearranges, $yearranges), 'empty' => true ) );
Comments
Post a Comment