2011-01-19 7 views
0

私はAJAXアップローダhttp://valums.com/ajax-upload/を自分のアプリケーションに統合しています。デフォルトでは、スクリプトはアップロードされたファイルを指定された1つのディレクトリにダンプします。私はそれがパラメータを受け取るようにそれを修正しました:2つのフォルダの名前 - 年と月。 uploads/2010/May/uploads /ではなく、uploadsフォルダ内のファイルをダンプします。ただし、2つのフォルダ名を明示的に文字列として指定しない限り。問題隠し入力値をJavaScriptドキュメントレディ関数のパラメータとして使用する

以下のコードはmy $(document).ready機能の中にあります。上記から分かるように

var uploader = new qq.FileUploader({ 
    element: document.getElementById('uploadfile'), 
    action: 'ajax/uploader.php', 
    allowedExtensions: ["xls"], 
    params: { 
     f: '2010',//document.getElementById('fileyear').value, 
     g: 'May'//document.getElementById('filemonth').value 
    }  
}); 

、Iは[このように、それが正常に動作]実際の行をコメントむしろ確認するダミー値を使用します。

私はf:$(#fileyear).val()、g:$(#filemonth).val()を使ってみましたが、うまく動作しませんでしたので上記のようにdocument.getElementByIdをデフォルトにしていました。アップローダー変数の外側では、2つの値が正しいです。

別の機能では、隠れた入力に日付が格納され、正常に保存されたことを確認するために通常のテキスト入力に変更しました。

ここで問題を推測しているのは、アップローダが作成前に(空白)値を取得している可能性がありますか?それともアップロードと関係がありますか?ドキュメントの準備ができていないのですか?私は本当にこのことに助けが必要です - 一日中頭を悩まされています。前もって感謝します!

答えて

2

document.getElementByID('fileyear').valueなどで取得した値は、DOMの読み込み後の値になります。後でフォームに入力することによって変更する値ではありません。

私はこれらの値を得るためにアップローダによって呼び出される関数に "f"と "g"オプションを作っています。この方法では、初期値(空白?)ではなく、呼び出し時の値を取得します。

+0

あなたは最高です! :D私はちょうど2つの機能を作成しました:1つは年と1つは月です。それは魔法のように働いた!!もう一度感謝、ニール:) – Cogicero

0
var uploader = new qq.FileUploader({ 
    element: document.getElementById('uploadfile'), 
    action: 'ajax/uploader.php', 
    allowedExtensions: ["xls"] 
}); 

$('your_button_id').click(function(){ 
    uploader.setParams({ 
     f: document.getElementById('fileyear').value, 
     g: document.getElementById('filemonth').value 
    }); 
}); 

または

var uploader = new qq.FileUploader({ 
    element: document.getElementById('uploadfile'), 
    action: 'ajax/uploader.php', 
    allowedExtensions: ["xls"], 
    params: { 
     f: (document.getElementById('fileyear')) ? document.getElementById('fileyear').value : 2010, 
     g: (document.getElementById('filemonth')) ? document.getElementById('filemonth').value : 'May' 
    }  
}); 
+0

これは素晴らしいアイデア、ダニエルだったでしょう。私は実際にはマニュアルのsetParamsを見ました。しかし、ボタンやリンクがないことを確認すると、このプラグインが強制的に使用するDIVのclickイベントは機能しますか?一方、上記のNeilの答えはすでに私を助けてくれました。ありがとう! – Cogicero

関連する問題