我有一个选择列表我已经在表单alter中创建,但是,当我选择一个选项并提交值时,只有第一个数字被存储在数据库中。我知道这与数组的格式有关,但似乎无法使其正确提交。Drupal选择列表只提交第一个字符
function addSR_form_service_request_node_form_alter(&$form, $form_state) {
$form['field_sr_account'] = array('#weight' => '-50',
'#type' => 'select',
'#title' => 'Select which account',
'#options' => addSR_getMultiple());
//Custom submit handler
$form['#submit'][] = 'addSR_submit_function';
}
function addSR_submit_function{
$form_state['values']['field_sr_account'] = array('0' => array('value' => $form['#field_sr_account']));
下面是返回关联数组的函数。它返回正确的选项,因为我可以在HTML源代码查看正确的值/选项页面加载时
//The values returned are not the problem, however, the format of the array could be..
function addSR_getMultiple(){
$return = array();
$return['one'] = 'Choice1'
$return['two'] = 'Choice2'
return $return;
}
更新:
Drupal 6: Only inserting first character of value to MySQL
我有一个类似的问题与同一个领域。然而,在那种情况下,我知道我想提交的价值,并且我可以在表单提交之前将值赋给字段中的alter形式。与这个问题的区别在于,我不知道该字段的价值,直到它被提交,所以我不能以alter形式“分配”它。我如何在提交处理程序中以相同的方式分配它。
你的例子很混乱,因为在任何地方都没有选择列表 - 你可能想要编辑它以显示你的选择列表处理(应该不需要通过单独的'#field_cckField'条目来解决奇怪的'解决方法'或者我不明白它打算做什么)。 – 2010-03-03 11:57:38
@Henrik欧宝 - 你说得对,我试图简化它,但我让它变得更加混乱。我重申了上述问题。 – tpow 2010-03-03 13:44:12
@Henrik欧宝 - 有没有办法将此传递给某种会话变量?这个问题正在杀死我。使用直接的PHP,这很容易 - 我想这是一个像Drupal这样的真棒系统的缺点.. – tpow 2010-03-04 13:36:42