【发布时间】:2017-01-12 14:33:13
【问题描述】:
我在 ajax 中遇到问题,确实,我尝试在提交之前使用 ajax 将值发送到我的上传函数。 但是当我在我的 php 代码中检查 $_POST 数组时,只有表单的值,而不是来自 ajax,我不知道为什么。 这是我的代码:
HTML:
<button id="btn_saisie" class="btn btn-app saver adddocu" ><i class="fa fa-save whiter"></i></button>
<form action="/uploader/adddocu" id="form_saisie" class="form_saisie" method="POST" enctype="multipart/form-data">
<input type="file" name="document" class="val_peage form-control form_num" id="document" data-rest="document" placeholder="Document">
<input type="text" name="description" class="val_parking form-control form_num" id="description" data-rest="description" placeholder="Description">
JS:
$( ".adddocu" ).click(function() {
if ($('#document').val() != "" && $('#description').val() != ""){
api_sendvalue_adddoc();
}
if ($('#document').val() == "")
alert('test');
else if ($('#description').val() == "")
alert('test2'); });
function api_sendvalue_adddoc(){
user = JSON.parse(sessionStorage.getItem('user'));
pays = localStorage.getItem("pays");
magasin = localStorage.getItem("magasin");
$.ajax({
type: 'POST',
url: '/uploader/adddocu',
data: {pays:pays, magasin:magasin},
success: function(data){
alert(data);
$("#form_saisie").submit();
console.log(data);
},
error: function(xhr){
alert(xhr.responseText);
console.log(xhr.responseText);
}
}); }
PHP:
public function adddocu(){
$path = './asset/upload/pdf/';
$path2 = '/asset/upload/pdf/';
$config['upload_path'] = $path;
$config['encrypt_name'] = false;
$config['file_ext_tolower'] = true;
$config['allowed_types'] = 'pdf';
// die(var_dump($_POST));
$this->load->library('upload', $config);
foreach($_FILES as $id => $name)
{
$this->upload->do_upload('document');
$upload_data = $this->upload->data();
$url = $path2 . $upload_data['file_name'];
$data = array('nom' => $upload_data['raw_name'], 'description' => $_POST['description'], 'url' => $url, 'user_id' => '17');
$this->db->insert('pdf', $data);
}
redirect("/login/docu");
}
所以,当我 var_dump $_POST 数组时,我只有“description”的值,而不是“pays”和“magasin”的值。
你能帮帮我吗?
感谢您的宝贵时间。
【问题讨论】:
-
我猜你在进行 ajax 调用时缺少 dataType : "json" ajax 参数应该类似于 type: 'POST',
url: '/uploader/adddocu', dataType : "json", data: {pays:pays, magasin:magasin}, -
如果我添加 datatype ,该函数不起作用,它会调用错误
-
您遇到了什么错误?确保它的
dataType不是datatype -
这是数据类型,如果我在错误函数中控制台记录 xhr,我有这个
Object {readyState: 4, responseText: "array(2) {↵ ["pays"]=>↵ string(2) "be"↵ ["magasin"]=>↵ string(2) "fn"↵}↵", status: 200, statusText: "OK"}