我正在尝试使用ajax调用提交表单后上传图片,有一个令我烦恼的问题,新的`<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>document.write('<base href="' + document.location + '" />');</script>
<link rel="stylesheet" href="style.css" />
<script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.3/angular.js" data-semver="1.4.3"></script>
<script src="app.js"></script>
<script>
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.user="admin";
$scope.list = [
{id:1,name:"first",tc:100},
{id:2,name:"second",tc:103},
{id:3,name:"third",tc:105}
]
console.log("hi");
console.log($scope.modes);
$scope.filterrole=function(item){
return $scope.user=="admin"?true:$scope.list[0]==item;
}
});
</script>
</head>
<body ng-controller="MainCtrl">
<div >
<div class="col-md-8 col-sm-12 col-xs-12">
<select ng-model="li" >
<option value="">select {{user}}</option>
<option ng-repeat="li in list |filter: filterrole">{{li.name}}</option>
</select>
</div>
</div>
<br>
<div><input type="button" value="admin" ng-click="user='admin'">
<input type="button" value="other" ng-click="user='other'"></div>
</body>
</html>`
给了我实际值,但每当我尝试通过ajax发送它时出现故障并重新加载页面,所以我也看不到控制台,请纠正我错在哪里。
我的javascript代码
INSERT ... SELECT .. WHERE NOT EXISTS (SELECT...)
我的HTML代码
FormData($(this)[0])
然而,文件数据发布在PHP页面中,还有一件事我如何发送隐藏字段值以及formdata对象。我是ajax $("#editImage").submit(function(){
var data = new FormData($(this)[0]);
console.log(data);
return false;
$.post("../galImages", data).done(function(response){
console.log(response);
});
return false;});
方法中的noobie。如果有人有任何想法,请帮助我。
答案 0 :(得分:1)
当你上传图片时(我的错误,先忘了!):
重要的部分是needed for upload
,否则它将失败
$(function () {
$('#my_form').on('submit', function (e) {
e.preventDefault();
var $form = $(this);
var formdata = (window.FormData) ? new FormData($form[0]) : null;
var data = (formdata !== null) ? formdata : $form.serialize();
$.ajax({
url: $form.attr('action'),
type: $form.attr('method'),
contentType: false, // needed for upload
processData: false, // needed for upload
dataType: 'json', // return
data: data,
success: function (response) {
// response
}
});
});
});
这段代码不是我的,发现它,很久以前就改编了,不能归功于它的原主人,因为我不记得她/他是谁:/
答案 1 :(得分:0)
使用preventDefault()
这将阻止表单和页面的默认行为重新加载。
$("#editImage").submit(function (e) {
e.preventDefault();
var data = new FormData($(this)[0]);
console.log(data);
return false;
$.post("../galImages", data).done(function (response) {
console.log(response);
});
return false;
});