需要Drupal專家的幫助。Drupal,Ubercart - 添加自定義字段以結帳形式
我的目的(手中有Drupal 7和Ubercart 3)是爲Checkout頁面添加一個自定義字段,該字段應該是動態的(來自ajax請求的值),其內容取決於用戶的交付城市輸入。
使用「Extra Fields Pane」模塊,我已經成功創建了帶有某個佔位符值的字段。比,我使用JS方法將值附加到該字段。當我使用該動態添加的選定值提交表單時出現問題 - 我爲該字段提供了「無效選擇」錯誤。當選擇未添加js值(佔位符)時 - 一切按預期工作。
請問我可以提示我解決這個問題嗎?
我在這裏找到一個https://stackoverflow.com/a/5159013/837255,它似乎是一種常見的方法,但這裏其他問題開始了。 在%我的模塊%在一個鉤子我不能訪問字段做操作。
的我是如何通過模塊「ajax_field_name」創建做出改變例子:
$form['panes']['delivery']['ajax_field_name']['#ajax'] = ....
但我他媽的窗格中沒有任何$形式[「窗格」] [「交貨」] ['ajax_field_name 「]。當我做var_dump($form['panes']['delivery'])
時,我發現位於$form['panes']['delivery']['address']['#uc_addresses_address']
對象後面的'ajax_field_name'位於私有財產後面。
function uc_nova_poshta_form_alter(&$form, &$form_state, $form_id){
if ($form_id == 'uc_cart_checkout_form'){
$obj = $form['panes']['delivery']['address']['#uc_addresses_address'];
// addressBook is a private property
$obj->addressBook;
}
}
事實上,這段代碼做什麼,我需要 -
$form['panes']['delivery']['address']['ajax_field_name2'] = array(
'#type' => 'select',
...
}
僅在該形式創建一個自定義字段,在一個合適的位置,以獲得它,但這個領域並不影響任何進一步的活動(訂單審查,管理頁面等)。此外,在$form['panes']['delivery']
此字段('ajax_field_name2')與創建模塊'ajax_field_name'分開。
我想這種行爲的原因是一些模塊,例如uc_addresses(我是對嗎?),但即使我禁用了最可疑的問題 - 問題仍然存在。
是否有可能找出如何訪問'ajax_field_name'創建的字段? 謝謝。