Form Callback Function Drupal 6 Doğrulama

2 Cevap php

Ben düğüm ekran sayfada bir select menü ile basit bir form var. Benim geri arama işlevi formu doğrulamak için kolay bir yolu var mı? Doğrulama tarafından ben sadece değerleri aslında formu dizide var olduğunu kontrol etmek için, gelişmiş bir şey demek istemiyorum. Benim seçin menü 3 öğeleri vardır ve ben bir 4 öğe eklemek ve formu göndermek için çalışırsanız Örneğin, ajax olmadan, drupal benzer bir şey söyleyerek bir hata verecektir "yasadışı bir seçim yapıldı, yönetici ile irtibata geçiniz."

Ajax ile oluşturulan bu 4 madde veritabanına kaydedilmiş olacaktı. Yani gibi doğrulama yazmak zorunda

if ($select_item > 0 && $select_item <= 3) {
  //insert into db
}

Ya madde aslında formu dizide var olduğunu kontrol edecektir daha kolay bir yolu var mı? Ben manipüle eğer ajax olmadan, drupal formu göndermek olmaz çünkü orada umut ediyorum. Teşekkürler.

EDIT: So I basically need this in my callback function?

$form_state = array('storage' => NULL, 'submitted' => FALSE);
$form_build_id = $_POST['form_build_id'];
$form = form_get_cache($form_build_id, $form_state);
$args = $form['#parameters'];
$form_id = array_shift($args);
$form_state['post'] = $form['#post'] = $_POST;
$form['#programmed'] = $form['#redirect'] = FALSE;
drupal_process_form($form_id, $form, $form_state);

$ _POST Almak ['form_build_id'], ben bir veri param olarak gönderdi, bu doğru mu? Ben form_get_cache kullanmak nerede hiçbir veri yok gibi görünüyor. Tür şimdi kayıp.

2 Cevap

Zaten AJAX kullanarak konum beri, neden sadece seçim hukuki seçenekler listesinde ise sadece form gönderme izin jQuery biraz yazmak değil mi? Bu () (drupal_add_js kullanarak) üzerinde çalışıyoruz gibi zaten görünüyor özel bir modül içinde yapılabilir.

Özellikle 'kolay' değil, ama bunu yapmak için standart bir yol Drupals yanı sıra geri verilmesi için API Forms kullanmak olacaktır - bu şekilde, size teslim olmayan bir js kopacağına aynı doğrulama alırsınız.

Adding dynamic form elements using AHAH bir göz atın. (Onlar verileri kaydetmek için değil, yeni öğeler eklemek için geri arama formunu yeniden) tam olarak senaryo uymuyor ise, işleme iş akışı açıklama oldukça yararlıdır.

Sonra genel bir şekilde AJAX form gönderme sunmaya çalışacağız çeşitli modülleri var - (ya da belki sadece bunları kullanmak bunu nasıl kendi kodunu kontrol edebilir ;)

  • Ajax submit (sadece bir dev versiyonu var)
  • Ajax ('resmi' bir sürüm var)

Son olarak, orada efforts to put better support this functionality into core in Drupal 7 - ilişkin tartışmalar da yardımcı olabilir.