我正在尝试使用jQuery和JSON设置AJAX文件上载脚本。
我对AJAX和jQuery有一些经验,但从未在我的生活中使用过JSON。
在浏览this教程时,我发现他们检索上传文件的方法是从数据库中获取所有文件。
这不符合我目前的需求。这将是将文章写入数据库的表单的一部分,因此脚本只需要与正在创建的文章关联的附件。
我基本上必须为附件会话创建一个数据库表,我用它来确定当前正在使用的附件。
这很好,但是,我现在需要一种方法将会话ID的额外变量传递给jQuery脚本。
我已经在我的PHP脚本中编码了JSON数据,但现在我如何访问jQuery脚本中的某个变量?在下面的代码中,我将指出我编码JSON数据的位置,以及我想在jQuery脚本中添加该数据的地方。
PS:这是在CodeIgniter中。
这是PHP脚本
function upload_file()
{
$status = '';
$msg = '';
$config = array(
'upload_path' => FCPATH.'attachments',
'allowed_types' => 'jpg|gif|png',
'min_height' => ($this->session->flashdata('img_min_height')) ? $this->session->flashdata('img_min_height') : 0,
'min_width' => ($this->session->flashdata('img_min_width')) ? $this->session->flashdata('img_min_width') : 0,
'max_height' => ($this->session->flashdata('img_max_height')) ? $this->session->flashdata('img_max_height') : 0,
'max_width' => ($this->session->flashdata('img_max_width')) ? $this->session->flashdata('img_max_width') : 0,
'max_size' => 300,
'encrypt_name' => TRUE
);
$this->load->library('upload', $config);
if(!$this->upload->do_upload('user_files')){
$status = 'error';
$msg = $this->upload->display_errors('', '');
} else {
$data = $this->upload->data();
$this->attachment->create($data);
if($this->attachment->error == NULL){
$status = "success";
$msg = "File uploaded.";
$session_id = $this->attachment->_session_id;
} else {
unlink($data['full_path']);
$status = "error";
$msg = $this->attachment->error;
$session_id = '';
}
}
@unlink($_FILES['user_files']);
echo json_encode(array('status' => $status, 'msg' => $msg, 'session_id' => $session_id )); **//I added the session id variable here.**
}
这是获取上传文件的jQuery脚本:
function refresh_files()
{
$.get('./upload/files/') //The session ID should go at the end of this URL...
.success(function (data){
$('#files').html(data);
});
}
答案 0 :(得分:0)
您只需在网址旁边添加一个额外的参数。
参考:http://api.jquery.com/jquery.get/
$.get('./upload/files/', required_data_here)
.success(function (data){
$('#files').html(data);
});
然后在服务器端脚本中:
<?php
var sess_id = $_GET['your_variable_here'];
?>
以下是参考文献中的一个例子:
$.get( "test.php", { name: "John", time: "2pm" } );