gpt4 book ai didi

jquery - ajaxSubmit 的回调函数不触发

转载 作者:行者123 更新时间:2023-12-01 01:19:26 25 4
gpt4 key购买 nike

来自File upload with jQuery and CodeIgniter (But no page refresh)

@cbrandolino 建议我使用 jQuery 表单插件来解决我的问题。它工作得很好,除了一个问题,回调函数没有像我预期的那样触发。

这是我修改后的代码
++ Javascript++

$('#send_button').live('click', function(){
var options = {
url: 'formHandle/add',
success: function(){
alert('something');
}
//I tried both function() or function(data)
//or a function created outside $(document).ready()
//None of them works
};
$('#new_entry_form').ajaxSubmit(options);
})

++ Controller ++

function add(){
$array = array(
'title' => $this->input->post('title'),
'description' => $this->input->post('description'),
'content' => $this->input->post('content'),
'start' => $this->input->post('start'),
'due' => $this->input->post('due'),
'price' => $this->input->post('price'),
'promotion_price' => $this->input->post('promotion_price'),
'website' => $this->input->post('website'),
'author' => $this->input->post('author'),
);

$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['overwrite'] = false;
$config['remove_spaces'] = true;
$config['encrypt_name'] = true;

$this->load->library('upload', $config);
if($this->upload->do_upload('picture')){
$array['picture'] = $this->upload->file_name;
$this->load->model('entry_model');
$this->entry_model->insertEntry($array);
echo 'true';
//I tried $this->load->view, echo or return
//none of them works
}else{
echo 'false';
}
}

文件上传正常,文件已上传到特定文件夹。
数据插入工作正常,数据已按预期插入到数据库中。
我遇到的唯一问题是回调函数。

您知道如何解决这个问题吗?我需要显示数据插入的结果。

更新:
添加 return false 对我没有任何帮助。还是不行

最佳答案

在选项里写回调函数,写清楚here

$(document).ready(function() { 
var options = {
target: '#output2',

success: showResponse // post-submit callback
};

// bind to the form's submit event
$('#myForm2').submit(function() {
// inside event callbacks 'this' is the DOM element so we first
// wrap it in a jQuery object and then invoke ajaxSubmit
$(this).ajaxSubmit(options);

// !!! Important !!!
// always return false to prevent standard browser submit and page navigation
return false;
});
});

function showResponse(responseText, statusText, xhr, $form) {
// for normal html responses, the first argument to the success callback
// is the XMLHttpRequest object's responseText property

// if the ajaxSubmit method was passed an Options Object with the dataType
// property set to 'xml' then the first argument to the success callback
// is the XMLHttpRequest object's responseXML property

// if the ajaxSubmit method was passed an Options Object with the dataType
// property set to 'json' then the first argument to the success callback
// is the json data object returned by the server

alert('status: ' + statusText + '\n\nresponseText: \n' + responseText +
'\n\nThe output div should have already been updated with the responseText.');
}

关于jquery - ajaxSubmit 的回调函数不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6094663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com