2016-10-12 11 views
0

jquery ajax(formDataを使用)で複数のデータとファイルをPHPファイルに送信しようとしていますが、PHPのファイルで$ _POSTと$ _FILEのどちらのデータも受け取りません。私は両方でNULLを受け取る。phpがajax FormDataからデータを受け取っていません

ここに私のajax関数があります。ここで

$('#formulario').submit(function(e){ 
    e.preventDefault(); 
    $.ajax({ 
     url:"../phpfile.php", 
     type:"POST", 
     dataType:"JSON", 
     data: new FormData(this), 
     processData: false, 
     contentType: false 
    }).always(function(respuesta){ 
     //code 
    }); 
}); 

私のHTMLは、ユーザーが、彼が望む限り多くのファイルをアップロードすることができ、およびHTML入力ファイルはjqueryのを使用してdinamicly追加され

<form enctype="multipart/form-data" method="POST"> 
         <div class='row'> 
          <div class='col-xs-12'> 
           <h4>Destinatarios</h4> 
           <select class='form-control' required name='destinatarios[]' title='Selecciona cuantos quieras' multiple data-selected-text-format="count>2" data-live-search="true"> 
            {%for familiar in familia%} 
             <option value='{{familiar.ID_PERSONA}}'>{{familiar.NOMBRE}} {{familiar.APELLIDOS}}</option> 
            {%endfor%} 
           </select> 
          </div> 
          <div class='col-xs-6 hidden'> 
           <h4>Tipo de entrega</h4> 
           <select class='form-control' id='entrega' name='entrega'> 
             <option value='1' selected></option> 
           </select> 
          </div> 
         </div> 
         <br> 
         <div class="row"> 
          <div class="col-xs-12"> 
           <div class="panel panel-default"> 
            <div class="panel-body"> 
             <div class="row"> 
              <div class='col-xs-4 text-center'> 
               <h4>Despues de mi partida</h4> 
               <input type="radio" value="muerte" name="tipoE" onchange="cambioR(this)"> 
              </div> 
              <div class='col-xs-4 text-center'> 
               <h4>En fecha determinada</h4> 
               <input type="radio" value="fecha" name="tipoE" onchange="cambioR(this)"> 
              </div> 
              <div class='col-xs-4 text-center'> 
               <h4>En mi ceremonia de despedida</h4> 
               <input type="radio" value="ceremonia" name="tipoE" onchange="cambioR(this)"> 
              </div> 
             </div> 
             <br> 
             <div class="row"> 
              <div id="f" class="hidden"> 
               <div class="col-xs-12"> 
                <div class="input-group date" id="sandbox-container"> 
                 <span class="input-group-addon">Fecha</span> 
                 <input type="text" class="form-control date" placeholder="dd/mm/yyyy" name="fecha" id="fecha"> 
                </div> 
                <br> 
               </div> 
              </div> 
              <div id="m" class="hidden"> 
               <div class="col-xs-12"> 
                <div class="input-group"> 
                 <span class="input-group-addon">Días después de mi partida</span> 
                 <input class="form-control" id="muerte" name="muerte"> 
                </div> 
                <br> 
               </div> 
              </div> 
             </div> 
            </div> 
           </div> 
          </div> 
         </div> 
         <div class="row"> 
          <div class="col-xs-12"> 
           <h4>Mensaje</h4> 
           <input class="hidden" id="nombre_mensaje" name="nombre_mensaje"> 
           <textarea class="form-control" rows="10" style="resize: none" id='mensaje' name='mensaje' required></textarea> 
           <br> 
          </div> 
         </div> 
         <div class="row"> 
          <div class="col-xs-12"> 
           <h4>Imágenes/Video/Audio/Archivos</h4> 
           <div class="grid" id="muestras" dc> 
            <div class="grid-item col-xs-3 deseo" onclick="novoFile(this);"> 
             <img src="../Recursos/imagenes/plus.jpg" width="100%;"> 
             <input class="hidden" type="file" onchange="cambio(this);" name="files[]"> 
             <input class="hidden datas" name="data_multimedia[]" value="0"> 
            </div> 
           </div> 
          </div> 
         </div> 
         <input class="hidden" id="id_mensaje" name="id_mensaje"> 
         <input type="reset" id="reiniciar" hidden> 
        </form> 

です。

+1

は、テストケース、問題と最小限の例に、あなたの問題を軽減します。答えを得る方が良いでしょう。ファイルのアップロードには役に立たない – sidyll

答えて

0

は交換してみます。

new FormData(this); 

で:

$('#formulario').serialize(); 
+0

あなた自身で解決することさえできます。あなたはAjaxのアップロードに 'FormData'を使用しなければなりません。 –

+0

アップロードのためにこのjQueryプラグインを試してみてください - http://jquery.malsup.com/form/ – stweb

関連する問題