2016-08-06 8 views
0

フォーム変数をAJAX経由でPHPに送信し、結果をconsole.logに表示しようとしています。しかし、コンソールは常にデータの価値がないことを示しています。何が間違っているのか分かりません。私がこれまで持っているもの:jQueryのコードの

パート:HTMLコードの

... 
init: function() { 
    this.on('success', function(csvFile, json) { 
     // AJAX 
     $.ajax({ 
      url : "tests.php", 
      type : "POST", 
      data : this.csvFile 
     }).done(function (data) { 
      // Bei Erfolg 
      console.log("Erfolgreich:" + data); 
     }).fail(function() { 
      // Bei Fehler 
      console.log("Fehler!"); 
     }).always(function() { 
      // Immer 
      console.log("Beendet!"); 
     }); 
    }); 

パート:

<form action="tests.php" class="dropzone" id="myAwesomeDropzone"> 
    <input type="text" name="testname" value="das bin ich"/> 
</form> 

PHPコード:

if(!empty($_FILES)){ 
    $test = $_FILES['file']['tmp_name']; 
    echo test; 
} 

if(!empty($_POST)){ 
    $test2 = $_POST['testname']; 
    echo $test2; 
} 
+0

あなたが合格しようとしている 'this.csvFile'上にあるもの? –

+0

PHPファイルの先頭に 'print_r($ _ POST);'を追加してください。出力があることを確認し、受信したPOSTデータがあるかどうかを確認してください。 – technico

答えて

0

あなたのHTMLコードとPHPは正常に動作します(tests.phpの "echo $ test"に "echo test"を修正する必要があります)。 Dropzoneは自動的にクラス "dropzone"を持つものに自分自身を添付し、ファイルを選択した後にサーバーにajax要求を行います。

あなたは、プログラムしたい場合:jQueryの

HTML

<div id="myDZ"> 
    Drop your file 
    <input type="text" id="testname" name="testname" value="hello_world"/> 
    <button id="upload">upload</button> 
</div> 

<script type="text/javascript"> 
     $("#upload").click(function(e){ 
      myDZ.processQueue(); 
     }) 
     var myDZ = new Dropzone("#myDZ", { 
      url: "tests.php", 
      autoProcessQueue: false, 
      init: function(){ 
       this.on('sending', function(xhr, fd1, fd2){ 
        //append extra data here 
        fd2.append("testname", $("#testname").val()); 
       });  

       this.on('success', function(file, responseText){ 
        //do after successful upload 
        console.log(responseText); 
       }) 
       } 
     }); 
</script> 

あなたは "autoProcessQueue:偽" を削除することができますし、自動にそれをしたい場合は、ボタンのものを削除しますファイルが選択されるとアップロードします。

より多くのイベントがここで見つけることができます:http://www.dropzonejs.com/#event-list