我制作了一个包含很多字段的表单,我计划通过AJAX异步提交所有数据。但是,当我单击“提交”按钮时,它仍处于单击状态,并且页面冻结。 beforeSend function
也不会执行。注意_()
函数是我听说过jQuery document.getElementById
函数的.done()
,但是这会帮助页面的性能和所有数据作为一行放入数据库,所以如果我拆分数据有一个.done()函数发送另一半,它会在数据库中存储为两行吗?
function addproperty(){
var propertyname = _("propertyname").value;
var propertyaddr = _("propertyaddress").value;
var price = _("price").value;
var rent = _("rent").value;
var available = _("available").value;
var brokerage = _("brokerage").value;
var area = _("area").value;
var subarea = _("subarea").value;
var sqft = _("sqft").value;
var description = _("description").value;
var location = _("location").value;
var floortype = _("flooringtype").value;
var parking = _("parking").value;
var deposit = _("deposits").value;
var lease = _("lease").value;
var utils = _("utils").value;
var bedrm = _("bedrooms").value;
var bathrm = _("bathrooms").value;
var smoke = _("smoking").value;
var pets = _("pets").value;
var built = _("built").value;
var submit = _("propertysubmit");
$.ajax({
url: "addlisting.php",
type: "POST",
async: true,
data:{
propertyname:propertyname,
propertyaddr:propertyaddr,
price:price,
rent:rent,
available:available,
brokerage:brokerage,
area: area,
subarea: subarea,
sqft: sqft,
desc: description,
locate:location,
floortype: floortype,
park: parking,
deposit: deposit,
lease: lease,
utils: utils,
bedrm: bedrm,
bathrm: bathrm,
builtdate: built,
smoke: smoke,
pets: pets
},
beforeSend: function (){
submit.setAttribute("disabled", "disabled");
submit.innerHTML = "Submitting...";
},
success: function (){
submit.removeAttribute("disabled");
submit.innerHTML="Add New Listing";
}
});
}
答案 0 :(得分:2)
按您的问题顺序:
post_max_size
值并设置它: #set max post size
php_value post_max_size 40M
根据您的页面冻结,这可能是一系列问题,您应该为您的应用程序添加一些错误处理并调试它以查看您的应用程序何时冻结然后查看所述代码,或者您是否可以抓住更好的错误。
.done()
和.success()
都是回调函数,它们是功能重复的,因为它们功能相同。需要注意的是,JQuery 1.8 +
.success()
.done()
将与.success()
类似地运行,如果您将AJAX调用拆分为两个调用,一个使用回调函数运行另一个调用,则插入您的行中的行数数据库将取决于你发布的方法是什么样的。如果您每次调用INSERT
行,则是,使用两次调用将INSERT
两行。