只有满足php条件才能运行javascript函数

时间:2013-01-13 00:34:05

标签: php javascript html

我希望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();">    

2 个答案:

答案 0 :(得分: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根本不知道在提交时要查找的内容。

答案 1 :(得分:1)

move_uploaded_file()正在将上传的文件从apache的临时目录复制到用户目录,所以当你提交文件时,它会在php端开始处理该文件之前上传到临时目录。

因此,我建议您使用客户端(javascript)表单验证,或者对AJAX文件上传和/或表单验证进行研究。 PHP是一种服务器端语言,在页面加载之前运行。不在页面内。 (除非是来自客户的AJAX调用。)