0

すべての条件が満たされ、ファイルがアップロードされている場合にのみ start_uploading 関数を開始したいのですが、現在、フォームが送信されたときに「読み込み中」というメッセージが一瞬ポップアップしますが、アップロードするすべての条件を満たしていませんでした。

if(condtion){// don't start function} else

if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)) {
  //now start function} else echo "error";

JavaScript

function start_Uploading(){
  document.getElementById('message').innerHTML = 'Loading... <br> Please Wait';
  return true;
}

とhtml

<form action="something.php" method="POST" enctype="multipart/form-data"
 onsubmit="start_Uploading();">    
4

2 に答える 2

2

PHPで条件が真であることを確認しているので、条件が満たされた場合にのみjsメソッド名をエコーアウトします。

そのようです:

<?php
  if(true) $onsubmit = "start_Uploading();"; // Put actual condition in parantheses
  else $onsubmit = "";
?>

そして、あなたのフォームで:

<form action="something.php" method="POST" enctype="multipart/form-data"
onsubmit="<?php echo $onsubmit; ?>">

条件が満たされない場合、メソッド名は提供されず、js は送信時に何を探すべきかわかりません。

于 2013-01-13T00:37:33.160 に答える
1

move_uploaded_file()アップロードされたファイルをApacheの一時ディレクトリからユーザーディレクトリにコピーしているため、ファイルを送信すると、php側がそのファイルの処理を開始する前に一時ディレクトリにアップロードされます。

そのため、クライアント側 (JavaScript) のフォーム検証を使用するか、AJAX ファイルのアップロードやフォーム検証について調査することをお勧めします。PHP はサーバー側の言語であり、ページが読み込まれる前に実行されます。ページ内ではありません。(クライアントからの AJAX 呼び出しでない限り。)

于 2013-01-13T00:46:14.907 に答える