可以在Drupal中动态添加,编辑和删除数据的表

时间:2014-11-02 03:50:00

标签: mysql drupal edit

我知道我们可以在Drupal中静态地在表中添加编辑和删除数据。但有没有什么办法可以通过点击每行附近的链接来添加编辑和删除数据,以便点击"添加"按钮应生成一个新行,并且在单击编辑时应突出显示该行的所有内容作为fr编辑,删除应该删除该行。我创建的基本表是:

<?php
    $header = array('Emp ID', 'Emp Name', 'Emp Age');
    $rows = array();
    $sql = 'SELECT empid, name, age FROM {employee} ORDER BY name';
    $result = db_query($sql);
    while ($row = db_fetch_array($result)) {
         $rows[] = $row;
    }
    print theme('table', $header, $rows);  
?>

1 个答案:

答案 0 :(得分:0)

你可以建造它。您已经获得了读取模式,因此您需要创建/更新/删除...在互联网上有一些基本CRUD模块的帮助。基本上,更新部分,(首先使用%通配符的菜单挂钩,这是arg(1)将是:

function crud_module_edit_form() {
  $result = db_select('employee', 'e')
    ->fields('e', array('empid', 'name'))
    ->condition('empid', arg(1), '=')
    ->orderBy('name', 'DESC')
    ->execute()
    ->fetch();

$form['name'] = array(
    '#type' => 'textfield',
    '#title' => t('Name'),
    '#default_value' => isset($result->name) ? $result->name : '',
    '#required' => TRUE,
  );
return $form;

}

然后上述表单的提交功能更新记录。您可以在此处使用db_merge,然后对Add和Update函数使用相同的页面。

function crud_app_edit_form_submit($form, &$form_state) {
  db_update('employees')
    ->fields(array(
      'name' => check_plain($form_state['values']['name']),
    ))
    ->condition('empid', arg(1), '=')
    ->execute();

  drupal_set_message(t('Employee updated'));
}