2016-10-04 96 views
0

我有一個$.post(),我想接收數據到我的控制器,我怎麼能做到這一點?

jQuery的

$.post($('#url').val() + "Dashboard/getApi", { name: "John", time: "2pm" }) 
    .done(function(data) { 
    alert("Data Loaded: " + data); 
    }); 

vvvvvvvvvvvvvvvvvvv this is my url vvvvvvvvvvvvvv 
$('#url').val() + "Dashboard/getApi" = "http://127.0.0.1/M2MWare/Dashboard/getApi" 

這是我的控制器

function getApi() 
    { 
    $valores = $this->input->post(); 
    // print_r($valores); 
    return json_encode($valores); 
    } 

這將返回我空數組,我試着用不同的URL,數據並沒有什麼爲什麼?

+1

'echo json_encode($ valores);'not'return json_encode($ valores);'。 –

+0

@RocketHazmat Nothing,returns _ [] _ – Gil

+0

你在傳遞一個錯誤的Url,從哪裏得到這個'$('#url')。val()' – Franco

回答

0

在WampServer上運行的Codeigniter 3.1.0。

控制板控制器

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class Dashboard extends CI_Controller { 

    public function __construct() { 
     parent::__construct(); 
    } 

    public function index() { 
     $this->load->view('post_view'); 
    } 

    function getApi() { 
     $valores = $this->input->post(); 
     echo json_encode($valores); 
    } 
} 

觀post_view.php這是爲了簡化非常精簡版。

<html lang="en"> 
<head> 
<title>Post Me</title> 
</head> 
<body> 
<form> 
    <input type="hidden" id="url" value="http://ci310tut.com/"> 
</form> 

<script src="<?= base_url('assets/js/jquery.min.js'); ?>"></script> 
<script> 
    $(document).ready(function() { 
     console.log('We should be seeing an alert popup'); 
     $.post($('#url').val() + "Dashboard/getApi", {name: "John", time: "2pm"}) 
      .done(function (data) { 
       alert("Data Loaded: " + data); 
      }); 
    }); 
</script> 
</body> 
</html> 

並且從上面我每次使用顯示的提供的數據執行頁面刷新時都會收到警報尖叫。

因此,您可能需要根據您的具體情況檢查上述內容。