2016-04-11 6 views
0

enter image description hereは、私のファイルアップローダーが正常に動作している基本的なプラスUI

をアップロードBlueimp jQueryのファイルを使用して、余分なフォームデータを送信し、今私はStart Uploadをクリックしたときにデータをアップロードするとドロップダウンリストの選択値を送信することを望んでいました。

私は次のwikiを読んだが運がなかった。 How to submit additional form data

誰でもこれを行う方法を知っていますか?

答えて

3

私はここの人々の大部分として賢明ではありませんが、私は同じタイプのものを実装しようとしていて、私のために働くようにしました。私は理由がとてもうまく説明できないかもしれないので、誰かが私がかなり理解していないものを埋めることができたらうれしいです。

私の実装は少し異なりますが(イメージごとに2つの追加入力があります)、正しい方向に向けるかもしれません。

これは私がやろうとしていたものです...私はフォームを使用して、サーバー上のフォルダにファイルを追加し、データベースに追加したいと思っていました。また、画像ごとに、データベースに追加する他のフィールドも選択したかったのです。

ドキュメントに記載されているように、私はフォームテンプレートに自分のselectタグを追加してインデックスページのフォームを修正する必要がありました。簡単にするために、私は使用するselectタグではなく、基本的なselectタグとテキストフィールドを表示しています。

選択タグの名前を指定し、各フィールドの名前の後ろに[]を含めてください。これは/server/php/index.phpで使用されます。 /server/php/index.phpで

<td> 
    <td class="title"><label>SizeID: <input name="sizeID[]" required></label></td> 
    </td> 
<td class="title"><label>Type: <select name="invTypeID[]"> 
             <option value="1">Thing one</option> 
             <option value="2">Thing two</option> 
            </select></label> 
            </td> 
    </td> 

あなたは私の特定の実装のために

protected function handle_form_data() 

protected function handle_file_upload() 

を変更する必要がありますが、私はにhandle_form_data機能を変更しました以下。これにより、フォームの2つの新しいフィールドをhandle_file_upload関数に渡すことができます。

protected function handle_form_data($file, $index) { 
    $file->sizeID = @$_REQUEST['sizeID'][$index]; 
    $file->invTypeID = @$_REQUEST['invTypeID'][$index];  
} 

次の私は、適切なSQL文を一致させるためにhandle_file_uploadを変更し、同様に私のニーズを満たすためにbind_param()関数を適応。

protected function handle_file_upload($uploaded_file, $name, $size, $type, $error, 
     $index = null, $content_range = null) { 
    $file = parent::handle_file_upload(
     $uploaded_file, $name, $size, $type, $error, $index, $content_range 
    ); 
    if (empty($file->error)) { 
     $sql = 'INSERT INTO `'.$this->options['db_table'] 
      .'` (`imgID`, `sizeID`, `invTypeID`)' 
      .' VALUES (?, ?, ?)'; 
     $query = $this->db->prepare($sql); 
     $query->bind_param(
      'sii', 
      $file->name, 
      $file->sizeID, 
      $file->invTypeID 
     ); 
     $query->execute(); 
     $file->id = $this->db->insert_id; 
    } 
    return $file; 
} 

正しい方向を指していることを希望します。

+0

これを投稿した後、私はデフォルトテーブル以外からデータを取り出すために、関数set_additional_file_properties($ file)関数からselectステートメントを更新する必要があることに気付きました。また、delete($ print_response = true)関数も実装に応じて更新する必要があることに注意してください。 – sgtp

関連する問題