Newmodule.I kullanım şekli i formu göndermek location.When i oluşturulan yeni alanın değerini almak nasıl bir alan eklemek için kullanıcı kayıt formu değiştirmek için değiştirmek gibi ben drupal adına bir modülü hazırlandı.
Önceki cevaplar üzerinde durmak, yere hook_form_alter işlevi, kendi # işleyicisi göndermek, örneğin çalıştırmak için formu söylemek istiyorum:
function mymodule_form_alter(&$form, &$form_state, $form_id) {
$form['new_field'] = array( ... ); // You already did this, right?
$form['#submit'][] = 'mymodule_submit_handler'; // Add this
}
Not: Eğer # değiştirilmesi değil, burada teslim üzerine ekleme yapılmalıdır. Sonra göndermek işleyicisi, sen kolayca örneğin değerini alabilirsiniz:
function mymodule_submit_handler($form, &$form_state) {
$value = $form_state['values']['new_field'];
}
Form değer saklanır
$form_state['values']['field_name']
Varsayılan olarak. Eğer TRUE
Bu davranış değişecek ve değerleri yerine düz bir iç içe geçmiş bir dizi olacak kadar #tree
ayarlarsanız.
Eğer $form_state
değişkene erişimi olduğu işlevleri iki türü, adı verilecek.
Doğrulama işlevleri kullanıcı girilen verileri doğrulama işlevi uygulama değiştirmek formdaki bu eklenti eklemek için vs, geçerli bir e-posta adresi gibi, kabul edilebilir olup olmadığını kontrol etmek için, form verilerini doğrulamak kullanılır:
$form['#validate'][] = 'name_of_your_validate_handler';
Fonksiyonları Gönder geçerli verileri ile bir form üzerine hareket için kullanılır. Genellikle bir gönderme işlevi uygulama değiştirmek formdaki bu eklenti eklemek için, burada veritabanına veri seti yönlendirmeleri ve bu takın:
$form['#submit'][] = 'name_of_your_submit_handler';
Doğrulama ve göndermek hem de işlevleri aynı args alır:
function validate_or_submit_func(&$form, &$form_state) {
// $form is the form array created by drupal_get_form
// $form_state contains valuable info like, the submitted values and other options.
}