我一直在上传图片和评论的表单。我用PHP工作,但现在我想用AJAX做。我想在AJAX中这样做的原因是,当上传失败时(由于条件如下:字段不能为空或图像的高宽比关闭),用户必须再次键入所有文本。然而无论我做什么,我都无法在AJAX中做到这一点。从AJAX发送图片
我试着在FormData中用$ .post和$ .ajax来做到这一点。我也查了很多指南和其他文章,但似乎没有任何效果。
下面你会发现HTML表单,jQuery AJAX调用以及来自AJAX调用的PHP页面的PHP代码。
HTML FORM
<form action="uploadpost.php" id="postForm" method="POST" enctype="multipart/form-data">
<div class="form-group">
<label for="postImage">Upload image</label>
<input type="file" id="fileToUpload" name="postImage" class="form-control">
</div>
<div class="form-group">
<label for="description">Write a caption</label>
<textarea name="description" id="postMessage" cols="30" rows="5" class="form-control"></textarea>
</div>
<input type="submit" id="postSubmit" value="Create post" name="upload_image" class="btn btn-primary">
</form>
的AJAX调用
<script type="text/javascript">
$(document).ready(function(){
$("#postSubmit").on("click", function(e){
var formData = new FormData($("#postForm"));
//var message = $("#postMessage").val();
$.ajax({
url: "ajax/postUpload.php",
type: "POST",
data: formData,
contentType: "multipart/form-data",
cache: false,
processData:false,
success: function(data)
{
console.log(data);
}
});
e.preventDefault();
});
});
Ajax中的PHP的代码/ postUpload.php
console.log(data)
从上AJAX输出调用返回
<pre class='xdebug-var-dump' dir='ltr'>
<b>array</b> <i>(size=0)</i>
<i><font color='#888a85'>empty</font></i>
</pre>
的问题是,我无法发送图片,也没有消息过来说PHP页面,它不允许我做createPost()
。
Sidenote on Stacks new color code scheme;它很糟糕。人.. 2种HTML格式的蓝色阴影?谁提出了这个想法? –