簡體   English   中英

如何通過jquery.ajax發送一個或多個數據

[英]How to send one or more data through jquery.ajax

我從stackoverflow復制了此代碼,當我通過它上傳多個文件時,它工作正常。 但是我不能發送其他參數。 它僅上傳文件,但不發送其他參數。 我嘗試了不同的方式,但是我無法發送數據。 我的代碼在下面,但我沒有將NewDir:foldername的第二個參數發送到我的php文件中

這是我的javascript代碼////////////

function OnProgress(event, position, total, percentComplete){    
    //Progress bar
    console.log(total);
    $('#pb').width(percentComplete + '%'); //update progressbar percent complete
    $('#pt').html(percentComplete + '%'); //update status text
  }
$(document).ready(function(){
 $('#files').change(function(){
  var files = $('#files')[0].files;
  var foldername = $('#Reciter_Name').val();
  var error = '';
  var form_data = new FormData();
  var bar = $('.bar');
  var status = $('#status');
  var percent = $('.percent');
  if(foldername == ''){
    alert("Your Don't enter any name");
    return false;
  }
  for(var count = 0; count<files.length; count++)
  {
   var name = files[count].name;
   var extension = name.split('.').pop().toLowerCase();
   if(jQuery.inArray(extension, ['mp3']) == -1)
   {
    error += "Invalid " + count + " Mp3 File"
   }
   else
   {
    form_data.append("files[]", files[count]);
   }
  }
  if(error == '')
  {
   $.ajax({
    url:"<?php echo base_url(); ?>index.php/admin/upload", //base_url() 

return http://localhost/tutorial/codeigniter/
        method:"POST",
        data:{form_data,NewDir:foldername},
        contentType:false,
        cache:false,
        processData:false,
        beforeSend:function()
        {
         // $('#uploaded_files').html("<label class='text-success'>Uploading...</label>");
        status.empty();
        var percentVal = '0%';
        bar.width(percentVal);
        percent.html(percentVal);
        },
        uploadProgress: function(event, position, total, percentComplete) {
            var percentVal = percentComplete + '%';
            bar.width(percentVal);
            percent.html(percentVal);
        },
        success:function(data)
        {
         $('#uploaded_files').html(data);
         $('#files').val('');
        }
       })
      }
      else
      {
       alert(error);
      }
     });
    });

這是下面給出的我的php代碼

function upload()
 {
    sleep(3);
  if($_FILES["files"]["name"] != '')
  {
   $output = '';
   $config["upload_path"] = './uploads/audio/';
   $config["allowed_types"] = 'mp3';
   $config["overwrite"] = TRUE;
   $this->load->library('upload', $config);
   $this->upload->initialize($config);
   for($count = 0; $count<count($_FILES["files"]["name"]); $count++)
   {
    $_FILES["file"]["name"] = $_FILES["files"]["name"][$count];
    $_FILES["file"]["type"] = $_FILES["files"]["type"][$count];
    $_FILES["file"]["tmp_name"] = $_FILES["files"]["tmp_name"][$count];
    $_FILES["file"]["error"] = $_FILES["files"]["error"][$count];
    $_FILES["file"]["size"] = $_FILES["files"]["size"][$count];
    if($this->upload->do_upload('file'))
    {
     $data = $this->upload->data();
     $output .= '
      <input type="hidden" name="url[]" value="'.base_url().'uploads/audio/'.$data["file_name"].'" />
      <input type="hidden" name="surahname[]" value="'.$data["file_name"].'" />
      <a href="'.base_url().'uploads/audio/'.$data["file_name"].'" target="_blank">'.$data["file_name"].'</a>
     ';
    }
   }    
  }
  echo $output;
 }

所以,請告訴我如何從php文件傳遞數據。 ///////////////////////////////////////////////////// ///////////////

您只需要添加

form_data.append('NewDir',foldername); 

在將form_data分配給ajax數據變量之前

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM