2014-11-02 66 views
0

我知道我們可以在Drupal中靜態添加編輯和刪除數據。但是,有沒有什麼辦法可以通過點擊每一行附近的鏈接來添加編輯和刪除數據,以便點擊「添加」按鈕應該生成一個新行,點擊編輯時應該突出顯示行的所有內容作爲編輯並刪除應該刪除該行。我創建的基本表格是這樣的:可在Drupal中動態添加,編輯和刪除數據的表格

<?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); 
?> 

回答

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')); 
} 
相關問題