Drupal 전문가의 도움이 필요합니다.Drupal, Ubercart - 체크 아웃 양식에 사용자 정의 필드 추가
내 목적 (Drupal 7 및 Ubercart 3 사용)은 체크 아웃 페이지에 동적 인 (아약스 요청의 값) 사용자 정의 필드를 추가하는 것입니다.이 필드는 사용자의 배달 도시 입력에 따라 다릅니다.
"추가 필드 창"모듈을 사용하여 일부 자리 표시 자 값이있는 필드를 만들었습니다. JS 메서드를 사용하여 해당 필드에 값을 추가합니다. 해당 동적 추가 선택된 값이있는 양식을 제출할 때 문제가 발생했습니다. 해당 필드에 "잘못된 선택"오류가 있습니다. js가 아닌 값 (자리 표시 자)을 선택하지 않으면 모든 것이 예상대로 작동합니다.
그 문제에 대한 해결책을 알려주세요.
여기서 하나를 발견했습니다. https://stackoverflow.com/a/5159013/837255이 일반적인 접근 방법 인 것으로 보이지만 다른 문제가 시작됩니다. % my module %에서 조작 할 수있는 필드에 액세스 할 수 없습니다.
내가 모듈 'ajax_field_name'에 의해 만들어진으로 변경해야하는 방법예 :
$form['panes']['delivery']['ajax_field_name']['#ajax'] = ....
하지만 내 * 요리하는 창없이 어떤 $ 양식 [ '창이']가 [ '배달'] [ 'ajax_field_name ']. 내가 할 때 var_dump($form['panes']['delivery'])
내가 그 'ajax_field_name'어딘가에 $form['panes']['delivery']['address']['#uc_addresses_address']
OBJECT 개인 재산 뒤에 위치하고 참조하십시오.
$form['panes']['delivery']['address']['ajax_field_name2'] = array(
'#type' => 'select',
...
}
은 그 형태로하지만, 그것에 접근하는 올바른 위치에 사용자 정의 필드를 만들고이 필드에 영향을주지 않습니다 -
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']
에서이 필드 ('ajax_field_name2')는 모듈 'ajax_field_name'을 사용하여 작성된 것과 별도로 위치합니다.
나는이 행동의 이유가 몇 가지 모듈이라고 생각합니다. uc_addresses (맞습니까?),하지만 내가 가장 의심스러워 할 때도 문제가 여전히 있습니다.
'ajax_field_name'만든 필드에 액세스하는 방법을 찾을 수 있습니까? 감사합니다.