2016-04-08 22 views
0

Dosya yükleme widget'ında bir sorunum var. Her bir sunum için her bir sunum için bir özel klasör ve her bir tanıtım için bir alt klasör oluşturmaya çalışıyorum. Bir şekilde böyle gider. Kullanıcı sunumu seçer/oluşturur -> Kullanıcı seçilen sunumu içinde ticari tercihler seçer/yaratır -> Kullanıcı dosyaları yükler -> Klasör ör. Presentation_1/Commercial_2/uploadedimg.jpg. Bir dahaki sefere kullanıcı aynı sunuma gidiyor ve aynı ticari yüklenen dosyalar gösteriliyor. Şu anda, seçilen sunuma bağlı olarak, ticari kullanıma göre doğru verileri seçmek için PHP $ _Session kullanıyorum. Sorun şu ki, sayfa yüklendiğinde blueimp index.php de yüklenir ve doğru sunumu seçmeden önce değişkenleri ayarlar. Bu nedenle son kez yaptığınız seçimi gösterir ve yanlış öğeler gösterir. Bazı düğmeler tıklatıldıktan sonra tıklatılacak veya UploadHandler.php'nin düğmeyi tıklattıktan sonra gerçekleşmesini geciktirdikten sonra değişkenlerin güncellenmesi için nasıl zorlayabilirim? Bazı yazım hataları olabilir, ancak kod çalışıyor, sadece bir yenileme çok geç! Herhangi bir yardım veya ipucu takdir edilecektir!blueimp jQuery-Dosya Yükleme. Özel yükleme klasörü: Veri getirilmeden önce değişkeni güncelleme

App.js

// after button click 
    var myData4={"selectedPres":selectedPres,"selectedComm":selectedComm}; 
    $.ajax({ 
     url : "./server/php/passSession.php", 
     type: "POST", 
     data : myData4, 
     success: function(data) 
     { 

     } 
    }); 

passSession.php

<?php 
    session_start(); 

    require_once('connections.php'); 

    if ($con) { 

     mysqli_set_charset($con,"utf8"); 

     if (isset($_POST["selectedComm"]) && !empty($_POST["selectedComm"])) { 
     $selectedPres= $_POST['selectedPres']; 
     $selectedComm= $_POST['selectedComm']; 

     $_SESSION['selectedPres'] = $selectedPres; 
     $_SESSION['selectedComm'] = $selectedComm; 
     } 

     else { 
      echo "Error"; 
     } 

    } else { 
     echo "No connection to database"; 
    } 
?> 

Index.php

<?php 
session_start(); 
error_reporting(E_ALL | E_STRICT); 

if(isset($_SESSION["selectedComm"]) && (!empty($_SESSION["selectedComm"]))) { 

    $selectedPres= $_SESSION['selectedPres']; 
    $selectedComm= $_SESSION['selectedComm']; 

    require('UploadHandler.php'); 
    $upload_handler = new UploadHandler($selectedPres, $selectedComm); 
} 
else 
    echo "Error in php session."; 
?> 

UploadHandler.php

function __construct($selectedPres, $selectedComm, $options = null, $initialize = true, $error_messages = null) { 
    $this->response = array(); 
    $this->options = array(
     'script_url' => $this->get_full_url().'/'.basename($this->get_server_var('SCRIPT_NAME')), 
     'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/files/'.$selectedPres.'/'.$selectedComm.'/', 
     'upload_url' => $this->get_full_url().'/files/'.$selectedPres.'/'.$selectedComm.'/', ... 
+0

Daha iyi bir yol buldum. Düğme tıklandıktan sonra dosya yükleme listesini güncellemenin bir yolu var mı? –

cevap

-1

Sorun çözüldü ... Sadece görüntülemeden önce dosya listesini güncellemek zorunda kaldı ..: D $ (". Table tr"). Remove(); $ ('# fileupload') dosya yükleme ({url: "server/php /"}); $ ('# Fileupload') addClass ('FileUpload işleme.'); $ .ajax ({url: $ ('# fileupload') dosya yükleme ('option', 'url'), dataType: 'json', context: $ ('# fileupload') [0]}).() {$ (this) .removeClass ('fileupload-processing');}). done (işlev (sonuç) {$ (this) .fileupload ('option', 'done') .call (this, $ .Event ('done'), {result: result});});

İlgili konular