我正在创建一个自定义用户设置页面。我有一个字段: zip_code 从自定义用户字段中获取初始值。我有一个自定义函数,它使用 zip_code 的值提取外部数据。
我目前将该字段的默认值设置为自定义用户字段(如果可用)。这是按设计工作的;但是,我想让用户能够通过 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'];
}
重申一下:我想添加在更改 zip_code 字段时用 getmystorename 函数生成的新按钮替换填充单选按钮的功能。