2017-10-18 17 views
0

こんにちは私は次のHTMLフォームを持っています。これを使って.xlxファイルをアップロードしています。ファイルがアップロードされた後に投稿を投稿する方法[]

<form action="dashboard.php" method="post" enctype="multipart/form-data"> 
          <div class="file-upload"> 


           <div class="col-md-12 m-b-15"> 
            <div class="col-md-3"> 
             Note No : 
            </div> 
            <div class="col-md-8"> 
             <input class=" form-control m-b-15 " id="note_number_for_the_alert" name="note_number_for_the_alert" readonly="">        
            </div> 
           </div> 
           <div class="row"> 
            <div class="col-md-8 m-l-10"> 

             <div class=" formError validateAlert" id="alert_to_upload_file_in_vendor_delivery_note_management" > 
              <div class="formErrorContent" id="test">please Select the .XLSX file <br></div> 
              <div class="formErrorArrow"></div>         
             </div> 
             <input type="file" id="file" name="file2" multiple="multiple" /> 
             <p style="text-align: right; margin-top: 20px;"> 
              <input type="submit" value="Upload Files" name="submit2" class= "btn btn-success" /> 
             </p> 
            </div> 
            <div class="col-md-4"></div> 
           </div> 


          </div> 
         </form> 

ファイルのアップロードに使用されるphpexcelコード行。

$uploadedStatus = 0; 
$name2 = ''; 
if (isset($_POST["submit2"])) { 
    if (isset($_FILES["file2"])) { 

     if ($_FILES["file2"]["error"] > 0) { 
      echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; 
     } else { 
      if (file_exists($_FILES["file2"]["name"])) { 
       unlink($_FILES["file2"]["name"]); 
       $uploadedStatus = 2; 
      } 
      $name = basename($_FILES['file2']['name']); 
      $name2 = explode('.', $name); 
      if ($name2[count($name2) - 1] == 'csv' || $name2[count($name2) - 1] == 'xlsx') { 

       $target_path = "uploads/programming/"; 
       $target_location = $target_path . basename($_FILES['file2']['name']); 

       move_uploaded_file($_FILES["file2"]["tmp_name"], $target_location); 
       $uploadedStatus = 1; 
} 


     } 
    } else { 
     echo "No file selected <br />"; 
    } 
    } 
} 

これらの2つは完全に別々に動作し、ファイルのアップロードに問題はありません。 しかし、私は同じ時間を使用してdashboard.phpにいくつかの値を送る必要があります。

ファイルがアップロードされる前に、ページがdashboard.phpにリダイレクトされました。ファイルのアップロードプロセスが完了した後、フォームを送信するための提案は$ uploadedStatus = 1になりました。

+0

あなたは純粋な 'PHP'を使っていますか、' JavaScript'や 'AJAX'を使ってデータを送受信していますか? 'class ="フォームコントロールにタイプミスがあります。m-b-15 id = "'これはコピー貼りか入力ですか?これもこの質問の完全なコードベースですか? – Sand

+0

JS onclickイベントを使用してメッセージをプッシュします。 –

+0

@Sand私は、ファイルがアップロードされた後、純粋なPHPを使用して、あるページから別のページにデータを送信しています。 plzは、私は質問のコードを使用して、変更を確認します。 –

答えて

1

質問に答えるには、JQueryを使用してファイルをアップロードします。したがって、ページはリロードされません。アップロードボタンを押すと、アップロード中の画像をユーザーに表示します。

<form action="dashboard.php" method="post" enctype="multipart/form-data" id="form_id"> 

jQueryのAjaxの&

function submitForm() { 
    var formData = new FormData($("#form_id")); 
    // show your loader image 

    $.ajax({ 
     url: upload.php, 
     type: 'POST', 
     data: formData, 
     async: false, 
     success: function (data) { 
      alert(data) 
      // hide your loader image 
     }, 
     cache: false, 
     contentType: false, 
     processData: false 
    }); 
} 

注:FORMDATAは、古いブラウザでは動作しません。これにはいくつか後退しますが、これを読んでくださいthread

+0

私はあなたにRintoに同意しました。素晴らしい提案ですが、$ target_path = "uploads/programming /"をどのように使うことができるかを明確にするためのもう少しのことです。 jquery upload.iは特定のフォルダにファイルを追加/アップロードする方法を意味します。 –

+0

ajaxはPHPページupload.phpを呼び出しています。 Ajaxは何もアップロードしていない、それはあなたのPHPスクリプトです。だからあなたはあなたが望む方法であなたのPHPファイルを調整することができます。これを覚えておいてください。ブラウザPOSTの代わりにAjaxを使用しています。残りはPHPです –

関連する問題