我知道我们可以在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);
?>
最佳答案
你可以构建它。您已经获得了读取模式,因此您需要创建/更新/删除...互联网上有一些有关基本 CRUD 模块的帮助。基本上,更新部分(首先有一个使用 % 通配符的菜单 Hook ,这就是 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,然后将同一页面用于添加和更新功能。
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'));
}
关于mysql - Drupal中可以动态添加、编辑和删除数据的表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26695844/