Drupal öncesinde bir form gönderme eylemi işlenen

3 Cevap php

Ben kullanıcı yükleyebilirsiniz dosya kümesi mevcut parçaların listesini içeren bir açılır ile bir form doldurma olduğum bir Drupal modül sayfası var. Kullanıcı belli bir türde bir dosya yükler sonra, listeden bu seçeneği kaldırır, ve tüm mevcut dosyalar yüklenirken formu işlenecek değil.

Sorun göndermek eylemini gerçekleştiren önce Drupal formu çizim olmasıdır, bu yüzden onlar sayfayı yeniden kadar işlem işe yaramadı kullanıcıya görünür.

Bu başa ortak yolu nedir? Sayfasına gitmek için form_state ['yönlendirme'] Ayar çalışmak için görünmüyor.

3 Cevap

Bu form durumu hakkında bazı bilgileri kaydeder, böylece sizin form değiştirebilir. Sonra tüm dosya yükleme yapılmazsa eğer hemen döner gönderme işlevi başında yeni bir olgu eklemek, ve bu formu çizer.

function modulename_uploader_form(&$form_stuff=null) {
//the function that sets your form array
$stuff = (isset($form_stuff['values'])) ? 
    $form_stuff['storage']['done_uploading'] : 
    false; //if values isnt set, this is the first visit. 
$form_stuff['storage']['done_uploading'] = done_uploading();
.... the rest of your form creation function.


function modulename_uploader_submit($form, &$form_stuff) {
    if($form_stuff['storage']['done_uploading']) {
return;
}
... rest of the function

Eğer form işlenirken bittiğinde depolama değişkeni unset emin olun. Ayrıca Drupal çoklu sayfalı formları google olabilir.

Lütfen göndermek işleyicisi $ form_state ['yönlendirme'] ayarlanması sadece formu eski veriler olmadan, taze yeniden neden olur. Eski değerler varsayılan olarak asmak kalmamak formu temizleyerek bir yoldur.

Muhtemelen işlemcileri çalıştırmak göndermeniz fazla alan ekleyerek veya formdan sonra diğer alanlarda seçenekleri kaldırarak, form kurma fonksiyonları formun gerçek yapısını yeniden inşa etmek için bir fırsat verir ki, ['yeniden'] $ form_state kullanmak istiyorum.

This blog post D6 çoklu-aşamalı formları yapıyor kaba bir öğretici vardır, ve Drupal 5 to 6 upgrade docs Drupal.org üzerinde nasıl $ form_state eser yararlı bir bakış içeren ve çeşitli bayraklar için ne vardır.

Sorun göndermek eylemini gerçekleştiren önce Drupal formu çizim olmasıdır, bu yüzden onlar sayfayı yeniden kadar işlem işe yaramadı kullanıcıya görünür.

Ben inanamıyorum. Bu konuda emin misin?