1つのフィールドしかないフォームがあります。このフィールドのタイプは 'managed_field'です。 [アップロード]ボタンをクリックすると、ファイルアップロードの進捗状況がプログレスバーに表示されます。その後、ファイルを保存するためにフォームを提出する必要があります。Drupal 7 - managed_fileタイプのファイルアップロード後のフォームの自動提出
ファイルを選択して[アップロード]ボタンではなくフォーム送信ボタンをクリックすると、進行状況バーが表示されないため、アップロード(「アップロード」ボタン経由)が完了した後、フォーム提出を開始したいと思います。
私の現在のフォームは、次のようになります。
$form['#attributes'] = array('enctype' => "multipart/form-data");
$form['pdf_upload'] = array(
'#title' => t('Upload PDF'),
'#type' => 'managed_file',
'#required' => TRUE,
'#progress_message' => t('Please wait...'),
'#progress_indicator' => 'bar',
'#upload_validators' => array(
'file_validate_extensions' => array('pdf'),
)
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Save'),
);
ファイル・モジュールは、ファイル/ AJAX/* URIにAJAXコールバックを経由してファイルを処理します。コールバックはajaxコマンドを返します。
基本的には、ファイルのアップロードが完了した後にフォーム提出をトリガーする追加のajaxコマンドを追加します。
これは難しいかもしれません。別の方法として、選択時にファイルを自動アップロードして、ユーザーがボタンを1つクリックするだけで済みます。 http://drupal.stackexchange.com/questions/31121を参照してください。 – Clive