0
我正在創建自定義用戶設置頁面。我有一個字段:從自定義用戶字段獲得它的初始值的zip_code。我有一個自定義函數,它使用zip_code的值來提取外部數據。Drupal AJAX替換
我目前有設置爲自定義用戶字段(如果可用)的字段的默認值。這是按設計工作的;但是,我想讓用戶能夠通過Ajax回調來更改其郵政編碼。這將取代已經填充的單選按鈕。我似乎無法繞過這個包裹。這裏是我的代碼:
function settings_shopping_form($form, &$form_state) {
include_once "external.inc";
// Get user fields
global $user;
$user_fields = user_load($user->uid);
$zipcode = $user_fields->zip_code['und']['0']['value'];
if(isset($zipcode)) {
$form['zip_code'] = array(
'#title' => t('Zip Code'),
'#type' => 'textfield',
'#required' => TRUE,
'#default_value' => $zipcode,
'#ajax' => array(
'callback' => 'settings_form_callback',
'wrapper' => 'textfields',
),
);
$storename = getmystorename($zipcode);
if(count($storename) > 0) {
$form['textfields'] = array(
'#prefix' => '<div id="textfields">',
'#suffix' => '</div>',
'#type' => 'fieldset');
$form['textfields']['stores'] = array(
'#type' => 'radios',
'#title' => t('Choose your store:'),
'#options' => $storename,
'#default_value' => $storename[1],);
} else {
$form['textfields']['incorrect'] = array(
'#title' => t('Sorry, there are no stores available near you. Check back later'),
'#type' => 'fieldset',);
}
}
我的回調函數是非常簡單的:
function settings_form_callback($form, $form_state) {
return $form['textfields'];
}
要重申:我想補充,以取代由getmystorename函數生成新的按鈕的填充單選按鈕的能力時, zip_code字段已更改。