2011-08-15 12 views
1

下記のようにjquery(フォームプラグイン)アップロードルーチンを "live'ify"できますか?jqueryフォームプラグインアップロードを使用すると再送信が発生しません

最初のクリックでアップロードされ、期待どおりに更新されますが、ユーザーは2番目のファイルをアップロードすることはできません。javascriptを起動していないようですので、このプラグインを使用していくつかの.live解決していない:

jQueryのフォームプラグインを使用しています。

$(document).ready(function() { 
var options = {target: '#uploads_panel', 

       data: 
        { upload_ajax_on:'1', 
           upload:'1' 
        } 
       }; 

$('#upload-form').submit(function() { 
    $(this).ajaxSubmit(options); 
    return false; 
}); 
}); 

形式は次のようになります。

<div id='uploads_panel'> <!-- for ajax refresh --> 
    //table containing existing file list 
<form action="/file/upload" method="post" id="upload-form" enctype="multipart/form-data"> 
    <p>File<br /> 
    <input type="file" name="userfile" id="userfile" /></p> 
    <p><input type="submit" value="Submit" /></p> 
</form> 
</div> 

とコントローラは次のようになります。

public function uploadAction() 
{ 

//fetch variables etc 

if(isset($_POST['upload'])) 
{ 
$data=array(); 
$data[name] = $_FILES['userfile']['name']; 
$data[internal_name] = date("Y-m-d-h-m-s",time()).$data[name]; 
$data[type] = $_FILES['userfile']['type']; 
$data[size] = $_FILES['userfile']['size']; 
$data[path] = 'uploads/'. $_SESSION['customer_id'] . "/".$data[internal_name]; 
$data[upload_time] = time(); 
$data[user_id] = $_SESSION['user_id']; 
$data[customer_id] = $_SESSION['customer_id']; 

$tmpName = $_FILES['userfile']['tmp_name']; 

$testervar=$uploadDir.$data[internal_name]; 
$result = move_uploaded_file($tmpName, $uploadDir.$data[internal_name]); 

if (!$result) 
{ 
    echo "Error uploading file"; 
    die; 
} 

$db = new DBitems(); 
// $last_id=$db->uploadFile($data); 


} 

$upload_ajax_on=$_POST['upload_ajax_on']; 

$dbitems = new DBitems(); 
$filelist=$dbitems->selectFilesByCustomerId($_SESSION['customer_id']); 
$this->registry->template->filelist =$filelist; 


if(isset($upload_ajax_on)) 
{ 
$this->registry->template->setView('masterpage','layouts:ajax'); 
$this->registry->template->setView('contents','customers:table_upload'); 
} 
else 
{ 
$returnurl=$_POST['returnurl']; 
$this->registry->router->redirect($returnurl); 
} 


} 

答えて

1

uploads_panel divの外でフォームを移動しようとしましたか?それがアップデートの影響を受けているかどうかはわかりませんか?希望は助ける?

+1

とまったく同じです。本当にありがとう! –

+0

probはありません、それは物事をソートしてうれしいです。 –

関連する問題