Drupal 7 开发内部培训资料, 分头诗人

drupal中如何将从数据库中读取到的数据赋值给表单中的某个文本框

赞成!
0
否决!

drupal中如何将从数据库中读取到的数据赋值给表单中的某个文本框.。具体的语句是怎么样的?如下图中如果要将从数据库中的数据读取出来,赋值给“受理人”。是不是直接在创建表单的时候给受理人的'#value'属性赋值呢?可不可以写成

$form['receiver']=array(
                   '#title'=>t('受理人'),
                   '#type'=>'textfield',
     '#value'=>'$row->accessor'
    );这样呢?

4 个回答

赞成!
0
否决!

赞成!
0
否决!

#default_value

赞成!
0
否决!

1,hook_menu 建立form 连接,留意re/edit的部分, 如何传值的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function  re_menu() {
  // 设定地址为http://www.xxx.com/re.
  $items['re'] = array(
    'title' => '申请',
    'description' => '申请',
    'page callback' => 'add_re',//调用系统函数 function add_re()。
    'file' => 're.pages.inc',//function add_re() 函数所在的文件地址
    'access arguments' => array('re submit'),// 访问权限控制,需要调用hook_permission()钩子。
    'type' => MENU_NORMAL_ITEM,
  );
// 设定地址为http://www.xxx.com/re/edit.
  $items['re/edit'] = array(
    'title' => '申请',
    'description' => '申请',
    'page callback' => 'edit_re',//调用系统函数 function edit_re()。
    'file' => 're.pages.inc',//function edit_re() 函数所在的文件地址
    'access arguments' => array('re submit'),// 访问权限控制,需要调用hook_permission()钩子。
    'type' => MENU_NORMAL_ITEM,
  );
  return $items;
}

 

2,edit_re 通过get_re 获得值,传去 re_form,通过default_value 获得默认值。增加状态时候,默认值为空,编辑状态时候,默认值不为空。这个数据读取只是一个demo测试数据,具体数据如何获取,这不阐述。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function add_re(){
return drupal_get_form('re_form', get_re());
}
function edit_re(){
return drupal_get_form('re_form', get_re('分头诗人', ‘2012-02-05’, '猪跑啦', '2012-07-19'));
}
function re_form($form, &$form_state, $re) { //$re是自定义的一个object,外部传值进来。
$form['receiver']=array(
     '#title'=>t('受理人'),
     '#type'=>'textfield',
     '#value'=>'$row->accessor',
     '#default_value'=>$re->receiver,
    );
....
}
function get_re($receiver = NULL, $receiverdate = NULL, $shouli = NULL, $shoulidate = NULL){
return (object) array(
      'receiver' => $receiver,
      'receiverdate' =>$receiverdate,
      'shouli' =>$shouli,
      'shoulidate' =>$shoulidate,
    );
}
赞成!
0
否决!

谢谢,再问下如何在D6中更新我修改的数据呢?我用的函数是db_query("UPDATE {st_02} SET state=%d WHERE nodeId=%d",$elements['state']['#value'],$elements['nid']['#value']);,执行玩以后总是无法更新数据!郁闷!