0
我現在正在構建自定義模塊的挑戰。Drupal hook_submit寫入db
我已經開始非常小,只是爲了嘗試和理解drupal鉤子和模塊。
我創建了一個帶有一個文本條目的簡單表單,唯一的驗證是該字段不是空的。
在表單提交我想寫入自定義表。該表存在。
我的領域是:
NID INT(11)
EID INT(11)主鍵自動遞增
標題爲varchar(50)
這裏是我的形式:
function my_module_my_form($form_state) {
$form['esp'] = array(
'#type' => 'fieldset',
'#title' => t('Add a ESP'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
$form['esp']['title'] = array(
'#type' => 'textfield',
'#title' => t('ESP Name'),
'#required' => TRUE,
'#default_value' => '',
'#description' => "Enter the ESP Name",
'#size' => 20,
'#maxlength' => 20,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
return $form;
}
,這裏是我已經設置的hook_submit()
:
function my_module_my_form_submit($form, $form_state) {
db_query("INSERT INTO my_module_esp (title) VALUES (".$form_state['values']['title'].")");
drupal_set_message(t('The form has been submitted.'));
}
但是這不起作用...任何建議蒸發散? 另外我想添加最新的NID到這個表中,我將如何獲取該值並在數據庫中更新它,因此它不會影響任何其他模塊?
任何幫助,將不勝感激
可以說,輸入的最後一個節點是300,那麼我想將它分配給節點301,並讓drupal知道它現在處於301計數狀態,並且不會將301分配給任何其他的作爲nid。 – Beyerz 2012-02-01 20:54:16
@Beyerz看到我的編輯以上 – Laxman13 2012-02-01 21:02:15
我做了我的$ form_state一的print_r下 '$ form_state我輸入時,出現[「值」] [「標題」];' 所以我用的數據庫查詢,如下所示: 'db_query ('INSERT INTO {my_module_api_esp}(title)VALUES(「%s」)',$ form_state ['values'] ['title']);' 但我仍然沒有看到這個被插入到我的db :(我從來沒有想過這可能是如此令人沮喪,謝謝你的建議,還有什麼我可以嘗試或應該知道爲了使這項工作? – Beyerz 2012-02-03 07:35:10