jQuery と CodeIgniter を使用したファイルのアップロードから(ただし、ページの更新はありません)
@cbrandolino は、jQuery フォーム プラグインを使用して問題を解決することを提案してくれました。コールバック関数が期待どおりに起動しないという 1 つの問題を除いて、うまく機能していました。
これが私の変更されたコード
です++ 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);
})
++コントローラー++
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 を追加しても、何の助けにもなりません。まだ動作していません