我的jQuery
方法-
jQuery("#upload_button").click(function(){
var exceldata = jQuery("#upload_button").serialize();
var url = "module/controller/contrlrmethod/exceldata/" + exceldata;
if( exceldata != "" )
{
jQuery.ajax({
url: url,
type: 'post',
success: function(data)
{
alert(data);
}
})
}
else
{
alert("I am in else");
}
});
控制器方法-
public function contrlrmethodAction()
{
//Get All Parameter data
$params = $this->_getAllParams();
echo "<pre>";print_r($params);die;
}
我正在通过这个按钮upload_button
上传Excel表。但每次它都在其他部分,不管我是否上传excel。让我知道我做错了什么。我使用PHPExcel库来进一步处理数据,但它总是在其他部分。
不确定,但看起来你正在序列化按钮…
var exceldata = jQuery("#upload_button").serialize();
--^^^^^^----here
应该是你的表单id。
var exceldata = jQuery("#formID").serialize();
和其他一些错误…因为你正在使用ajax post ..您可以通过data
选项发送数据,而无需在url中传递序列化数据。
var url = "module/controller/contrlrmethod/exceldata/";
jQuery.ajax({
url: url,
type: 'post',
data: exceldata, //<--here
success: function(data)
{
alert(data);
}
})
注意:如果你正在尝试使用ajax post上传文件。那么这是不可能的,要么你必须使用iframe…或者使用其他ajax文件上传插件
不能使用AJAX上传文件。你必须在表单上使用老式的POST。
另一方面,如果你想用ajax发送表单,你需要序列化整个表单,而不仅仅是一个提交按钮。
var serializedForm = $("form").serialize();
jQuery.ajax({
url: 'module/controller/contrlrmethod',
type: 'POST',
data: serializedForm,
success: function(data)
{
alert(data);
}
});
但正如我所说,这段代码不上传文件。它只是修复你的表单。