执行顺序ISSET vs JQUERY

时间:2015-12-23 14:03:15

标签: php jquery html

我有两个函数,一个是PHP,第二个是JQuery。我希望他们在相同的按钮点击激活。但是我希望fisrt能够激活PHP函数,然后激活JQuery。我怎样才能做到这一点。这是我的代码。问题是JQuery函数中的这一行

var imagename = "<?php echo $nameoffile ?>";

当我用硬编码变量替换它时,一切正常。如何控制执行顺序?

HTML:

<form id ="submit_leave_email" enctype="multipart/form-data" method="POST" >
 <div class="form1">
 <div class="radio-line" id="radio-manager" style="font-size:12px">
 <input type="radio" id="rad-400" name="radio-manager" value="No"/> Registered
 <input type="radio" id="rad-400" name="radio-manager" value="No"/> Unregistered
       </div> <br>
 <h4 class="manager" style="font-size:12px">ID of car is :</h4><br><br> 
  <input type="hidden" name="MAX_FILE_SIZE" value="100000" class="input_1" />
  <input id="fileupload" name="uploadedfile" type="file" class="input_1" /><br/>
  <input id="brand" type="text" value="Name of car :"  class="input_1"         name="brand"  /><br></div> <br>
   <div id = "image" style="width:100px; height:100px"></div></div>
  <input id="submit"  type="submit" name="submit" value="submit">
</form>

PHP:

<?php
  if(isset($_POST['submit'])){
     $target_path = "images/";
     $nameoffile = basename( $_FILES['uploadedfile']['name']);
     $target_path = $target_path . $nameoffile; 
     echo $nameoffile;
  if(!move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "There was an error uploading the file, please try again!";
     }
}
  ?>

JQuery:

<script type="text/javascript">
$( "#submit_leave_email" ).submit(function( event ) { 
     var brand = $('#brand').val();
     var id = localStorage.getItem("id");
      if($('#rad-400').is(':checked')){
        var ide = 'reg';
    } else {
        var ide = 'unreg';
    }
     var imagename = "<?php echo $nameoffile ?>";
     $.ajax({
            type: "POST",
            url:  "updateCarSql.php",
            data: "ide=" + ide + "&id="+ id + "&brand="+                         
            brand+"&imagename="+imagename,
            success: function(){
                $("#submit_leave_email").fadeOut();
                $("#update_success1").fadeIn();
            }
        });
});
</script>

1 个答案:

答案 0 :(得分:1)

PHP代码在服务器上运行,jQuery在客户端运行,因此在jQuery之前执行问题的严格答案是ISSET;然而,这并没有真正帮助你。

在提交表单之前,您似乎正在尝试使用PHP获取jQuery代码的文件名。这是一个问题22,因为PHP代码在您提交表单之前不会运行。

如果您想获得所选的文件名,则需要使用javascript。看看这个问题 - Use jQuery to get the file input's selected filename without the path

另请查看preventDefault因为我怀疑您不想进行ajax调用并提交表单。