簡體   English   中英

從控制器獲取數組的值以在Codeigniter中使用Ajax查看

[英]getting the value of a array from controller to view with ajax in codeigniter

我正在創建一個狀態更新系統,我需要在其中上傳圖像並在使用ajax上傳所有圖像時顯示它,但是當我將圖像發送到數據庫時,卻無法在ajax返回中訪問該圖像

這是代碼

 <div class="tab-pane fade" id="tabs-2">
    <?php echo form_open_multipart('',["id"=>"formupload","name"=>"formupload"]); ?>
    <p class="formUnit"> <i class="active_pic"></i>

    <input type="hidden" name="id" value="<?php echo $id; ?>">    
    <button class="uibutton" type="button" id="upload_pic" style="width: 230px; height: 150px;">Upload Picture</button><span id="status"></span>
    <?php echo form_upload(["name"=>"imagefile","id"=>"upload_pic"  ]); ?>
    <ol class="controls clearfix">
    <?php echo form_submit(['name'=>'submit','value'=>'Submit',"class"=>"btn btn-primary"]); ?>
    </ol>
    </p>
    <p id="files"></p>
    <?php echo form_close(); ?>
</div>

現在阿賈克斯

 jQuery('#formupload').submit(function(e){

        e.preventDefault();
        var formData = new FormData(this);
        var url= '<?php echo base_url("user/postData_image"); ?>';
        formData.value

        jQuery.ajax({

            type: "POST",
            url:url,
            data: formData,
            cache: false,
            contentType: false,
            processData: false,
            success: function(data)
            {
                console.log(data);
                $('#output_post').attr('src',data);
      },
            error: function(data){
            //error function
          }
       });            
    });

現在的控制器

public function postData_image()
  {
      $config = [
                  'upload_path' =>    './uploads/',
                  'allowed_types' =>    'jpg|gif|png|jpeg',
                  'max_size'            => 10000000000000,
                  'max_width'            => 1024000000,
                  'max_height'           => 7680000000,
                ];
              $this->load->library('upload', $config);
              $this->upload->initialize($config); 
              $imagefile="imagefile";
        if(!$this->upload->do_upload($imagefile)) 
         {
          $upload_error = $this->upload->display_errors();
          $this->load->view('dashboard/profile',compact('upload_error'));
         }
        else 
         {
          $post = $this->input->post();
          //print_r($post);
          unset($post['submit']);
          $upload_data = $this->upload->data();
          $file_name=$_FILES['imagefile'];
          $this->load->model('Pmodel');
          $post_data=$this->Pmodel->post_data_image($post,$file_name);
          $post['data']=$post_data;

          echo $image_path= base_url("uploads/".$upload_data['raw_name'].$upload_data['file_ext']);
          return $post;

         }

  }

model

public function post_data_image($arr,$arra)
{

    $id=$arr['id'];
    $image=$arra['name'];

$data=array('image'=>$image);


    $query=$this->db->insert('post_status',['user_id'=>$id,'image'=>$image]);
    return $query;
}

但是如何返回使用ajax插入數據庫后生成的值

您想將您的帖子輸出為json,以便jquery可以解釋它。

  echo json_encode($post);

在您的ajax函數中添加:

dataType: 'json'

然后數據將成為您可以使用的數組。

謝謝@Callombert我得到了我要找的答案我想返回值,並且'echo json_encode('$ image_path)或$ post將以json形式返回值,因此您可以在視圖中訪問它

對於其他人尋找答案,只需添加echo json_encode($ image_path);

在您的ajax函數中添加:

dataType:'json'

這會讓你工作。

暫無
暫無

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

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