2016-04-11 6 views
0

enter image description hereОтправить дополнительные данные формы с Blueimp Jquery файлом загрузить Basic Plus UI

Моего файл загрузчик работает нормально, и теперь я хотел послать выбранное значение в раскрывающемся меню с загрузкой данных при нажмите Start Upload.

Я прочитал следующую вики, но не повезло. How to submit additional form data

Кто-нибудь знает, как это сделать?

ответ

3

Я не настолько умный, как большинство людей здесь, но я пытался реализовать тот же тип вещей и заставить его работать на меня. Возможно, я не смогу объяснить, почему это очень хорошо, поэтому, надеюсь, кто-то может заполнить то, что я не совсем понимаю.

Хотя моя реализация немного отличается, (я собираюсь сделать два дополнительных ввода на изображение), это может указывать на вас в правильном направлении.

Вот что я пытался сделать ... Я хотел использовать форму, чтобы добавить файл в папку на сервере, а также добавить его в базу данных. Кроме того, для каждого изображения я хотел бы выбрать другие поля, которые будут добавлены в базу данных.

Как описано в документации, мне пришлось изменить форму на индексной странице, добавив мой тег select в шаблон формы. Для простоты я просто показываю базовый тег select и текстовое поле вместо заполняемых php тегов, которые я буду использовать.

Убедитесь, что вы указываете имя для тега select и включаете [] после имени для каждого из полей. Он будет использоваться в /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> 

в /server/php/index.php вам придется изменить

protected function handle_form_data() 

и

protected function handle_file_upload() 

Для моей конкретной реализации, я изменил handle_form_data функцию к следующий. Это позволяет использовать два новых поля в форме для передачи функции handle_file_upload.

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

Затем я изменил handle_file_upload, чтобы соответствовать правильной инструкции SQL и адаптировали функции 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

После публикации этого я понял, что для того, чтобы вытащить данные из ничего, кроме таблицы по умолчанию, вам нужно обновить инструкцию select из функции set_additional_file_properties ($ file). Также имейте в виду, что функция delete ($ print_response = true) также может быть обновлена ​​в зависимости от вашей реализации. – sgtp