Drupal form değerleri değişmiş Başlarken

3 Cevap php

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ı.

3 Cevap

Ö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.

  1. 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';
    
  2. 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.
}

Yeni modülü de onları görebilirsiniz böylece $ form ve $ form_state değerlerini dökümü böylece çağrılan bir _submit kanca gerekiyor.