2016-04-08 12 views
0

ファイルアップロードウィジェットに問題があります。私は各プレゼンテーション用のカスタムフォルダと、各プレゼンテーション用のサブフォルダを各コマーシャル用に作成しようとしています。それは何とかこのようになります。ユーザーがプレゼンテーションを選択/作成 - >ユーザーが選択したプレゼンテーション内でコマーシャルを選択/作成する - >ユーザーがファイルをアップロードする - >フォルダーが作成中。 Presentation_1/Commercial_2/uploadedimg.jpg次回は同じプレゼンテーションと同じコマーシャルにユーザーがナビゲートし、アップロードされたファイルが表示されます。現在、PHP $ _Sessionを使用して、選択されたプレゼンテーション - >商業に応じて表示する適切なデータを選択しています。問題は、ページが読み込まれたときにblueimp index.phpも読み込まれ、正しいプレゼンテーション - >コマーシャルを選択する前に変数を設定することです。したがって、最後に選択した項目が表示され、間違った項目が表示されます。ボタンをクリックした後に変数を強制的に更新するか、ボタンをクリックした後にUploadHandler.phpの読み込みを遅らせることができますか?いくつかのタイプミスがあるかもしれませんが、コードは動作していますが、リフレッシュは遅すぎます!どんな助けや手がかりもいただければ幸いです!blueimp jQuery-File-Upload。カスタムアップロードフォルダ:データを取得する前に変数を更新する

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

私はおそらくより良い方法を見つけました。ボタンをクリックした後にファイルのアップロードリストを更新する方法はありますか? –

答えて

-1

問題が解決しました。表示する前にファイルリストを更新するだけでした。:D $( "。table tr")。remove(); $( '#fileupload')。fileupload({url: "server/php /"}); $( '#fileupload')。addClass( 'fileupload-processing');データ型: 'json'、コンテキスト:$( '#fileupload')[0]})。常に(関数() (オプション)、 '完了').call(this、$ .Event())$ this(){$(this)}。 ( '完了')、{結果:結果});});

関連する問題