2017-05-19 7 views
0

私はzend framework 2で元々作られたプロジェクトにファイルアップローダーを入れています。私は初心者です。zendフレームワーク2の典型的なajax呼び出しを試してみよう

私はこのプロジェクトに慣れ親しんだZend Skeletonアプリケーションの構造に従わないので、プロジェクトの構造が私を混乱させます。例えば。このプロジェクトにはmodule.configファイルは含まれていません。

このため、私は典型的なajax呼び出しを使用しましたが、タイプEXCEPTION_NO_CONTROLLERエラーが発生します。そして、私はZF2で典型的なajax呼び出しを引き出す方法を理解しようとしています。

HTMLとAjaxの呼び出しは、次のとおりです。私が持っているcupload.phpで

<form id="fileupload" method="POST" enctype="multipart/form-data"> 

<div class="row"> 
    <input name="files[]" type="file" multiple/> 
</div> 

<div class="row"> 
    <input type="submit" class="btn btn-success" value="Submit"/> 
</div> 

<div id="content" class="row"> 
</div> 

</form> 


<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
<script type="text/javascript"> 

$(document).ready(function(){ 

    $('#fileupload').on('submit', function(e){ 

      e.preventDefault(); 
      $.ajax({ 
       url: "upload.php", 
       type: "POST", 
       data: new FormData(this), 
       contentType:false, 
       processData: false, 
       success: function(data, textStatus){ 

        $("#content").html("data: " + data + " status: " + textStatus); 
       }, 
       error: function(data,textStatus){ 

       alert("data: " + data + " status: " + textStatus);    
       } 
      }); 
     }); 

}); 

</script> 

<?php 

$options = array(
    'db_host' => 'hostname', 
    'db_user' => 'username', 
    'db_pass' => 'password', 
    'db_name' => 'dbname', 
    'db_table' => 'dbtable' 
); 

if (is_array($_FILES)){ 
    // MYSQL and PHP logic goes here  
} 

答えて

0

は概念的には、フロントエンドのjQueryコードがバックに要求を行います終了PHPコード。 ZF2アプリケーションでは、そのような要求はルート、コントローラ、およびアクションによって処理されます。

だから、あなたがする必要があります。

  • は、アップロードを処理するルートを追加します。これは、クライアント側のコード(あなたのjQuery)が要求しなければならないURLと、リクエストを処理して応答を返すバックエンドコントローラ/アクションとの間のマッピングを定義します。

  • コントローラとアクションルーティングとコントローラ/アクション - -

異なるZF2のセットアップは、最初の2つのステップを達成ルートによって表されるURLを使用するフロントエンドコード変更ルートで定義され、さまざまな方法ではなく、典型的には、それは既存のモジュールまたは新しいモジュールでも定義されます。そのようなもののための標準的なセットアップはZF2 docsに記述されています。

関連する問題