我正在使用Drupal 6並安裝了AJAX模塊。我有以下代碼:Drupal:如何在使用AJAX按下'刪除'按鈕後修改表單ui?
function remove_manufacturer_role_form($form_state) {
$form['#ajax'] = array(
'enabled' => TRUE
);
$form['hidden'] = array('#type' => 'value', '#value' => 'is_it_here');
$form['submit'] = array('#type' => 'submit', '#value' => t('Remove yourself as manufacturer'));
return $form;
}
function remove_manufacturer_role_form_submit($form, &$form_state) {
$current_vars = ogrolerequestmanufacturerblock_get_current_vars();
if($current_vars)
{
$curr_gid = $current_vars['current_gid'];
$curr_uid = $current_vars['current_user_id'];
$delete_query = "DELETE FROM {og_users_roles} WHERE rid in (SELECT rid FROM {role} WHERE name='Manufacturer') AND uid=$curr_uid AND gid=$curr_gid";
if(db_query($delete_query))
drupal_set_message("You successfully removed yourself as a manufacturer from this project");
}
}
基本上,我有一個窗體來刪除用戶作爲一個項目中的製造商。用戶有能力刪除自己。這種形式允許用戶點擊一個按鈕,該按鈕依次使用AJAX提交表單,從數據庫中刪除用戶作爲製造商的角色,並通知用戶它是否成功。它成功地使用AJAX進行調用並刪除角色,但它仍然具有顯示的刪除按鈕。如果用戶再次點擊該按鈕,它會給出一個錯誤b/c,沒有什麼可以刪除的。這是好的,我想,B/C它不是一個致命的錯誤,並不會影響任何東西......但是,這對用戶來說並不美觀。
有沒有一種方法可以刷新模塊的塊或修改提交後顯示的表單?
編輯:
這似乎是一個很好的解決方案,但我不能完全似乎得到它的工作。我在我的模塊中包含了delete.js javascript:
/**
* Ajax Forms plugin for ogrolerequestmanufacturerblock
*
* @param {String} hook
* @param {Object} args
* @return {Bool}
*/
Drupal.Ajax.plugins.ogrolerequestmanufacturerblock = function(hook, args) {
alert('it got into javascript!');
if (hook === 'submit') {
alert('submit called within javascript!');
}
return true;
}
它似乎從來沒有進入這個JavaScript函數。 drupal如何知道調用這個特定的函數?
我進入了JavaScript,不知道我改變了什麼,但最終開始工作。現在我所要做的就是使用javascript和「display:none」來獲得按鈕,然後我應該完成。非常感謝沒有人願意回答的有用答案。額外的布朗尼點! – 2010-01-26 18:43:13