那里。我有一个页面,它制作了一个表单,其中包含在Bootstrap模式中上传的文件。
表单的提交是在Javascript上完成的,在重新加载页面之前,我需要获得一条关于文件上传的消息,以显示给用户。以下是示例:
HTML:
<div id="modal-insert-occurrence-form" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="modal-insert-occurrence-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="modal-insert-occurrence-label">Insert occurrence</h3>
</div>
<div class="modal-body">
<form id="insert-occurrence-form">
<fieldset>
<label for="obs-occurrence">Obs</label>
<textarea name="obs-occurrence" id="obs-occurrence" rows=3 class="span4"></textarea>
<label for="image-occurrence">Screenshot</label>
<input type="file" name="image-occurrence" id="image-occurrence" />
</fieldset>
</form>
</div>
<div class="modal-footer">
<button id="modal-insert-occurrence-submit" class="btn btn-info" onClick="fileUp('insert-occurrence-form','ajax/upload.php');" >Insert</button>
<button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button>
</div>
</div>
JavaScript:
function fileUp(form_id, action_url) {
var form = document.getElementById(form_id);
form.setAttribute("action", action_url);
form.setAttribute("method", "post");
form.setAttribute("enctype", "multipart/form-data");
form.setAttribute("encoding", "multipart/form-data");
form.submit();
//Need to show the message here!
location.reload();
}
我能做什么?谢谢
基本上。。。你不能"如果PHP文件上传成功,就签入JS"。Js是客户端,php是服务器端。由于您已经在表单提交时重新加载了页面,因此您可以做的是在php中检查文件是否已上传,并在js中设置一个带有答案的var。类似于:
<script>
var uploaded = <?php echo $uploadSuccess; ?>;
</script>
但这有点乱。一个更干净的解决方案是发送一个ajax请求进行检查。