簡體   English   中英

從Ajax發送到Codeigniter控制器的數據

[英]Data sent from Ajax to codeigniter controller

我正在嘗試通過Ajax將用戶名從視圖發送到控制器,如下所示:

 $('#exampleFormControlSelect1').change(function(){
     var  username =$('#exampleFormControlSelect1').val();

        $.ajax({
            type: 'POST',
            dataType: "json",
            url: "Panier/loadPanier",
            data: {username: username},
            success: function(result){
                $("#tbodyid").empty();
                var data1 = JSON.parse(result);
                console.log(data1) ;
            },

        });

    });

我嘗試使用發送的值做一些工作:

    public function loadPanier()
{

    $res = [];
    $username = $this->input->post('username');

    $panier_data = $this->model_panier->getPanierData($username);

    foreach ($panier_data as $k => $v) {
        $idPiece = $v['idPiece'];
        $qte = $v['quantity'];
        $piece_data = (array)$this->model_catalogue->getDetail($idPiece);

        $price = (int)$piece_data['Unit Price'];
        $montant = $qte * $price;

        array_push($res, array(
            'idPiece' => $idPiece,
            'Description' => $piece_data['Description'],
            'qte' => $qte,
            'prix HT' => round($piece_data['Unit Price'], 3),
            'montant' => $montant
        ));
    }

    return $res;
}

在我的網址中,我收到此錯誤:

為foreach()提供了無效的參數

但是這是我通過執行var_dump($ username)注意到的:

C:\\ wamp64 \\ WWW \\ PortalDealer \\應用\\控制器\\ Panier.php:66:空

所以我的數據沒有通過!

你能幫我嗎?

編輯 在此處輸入圖片說明

展示這部分代碼的結果:

    var_dump($_REQUEST);
    $res = [];
    $username = $this->input->post('username');
        var_dump($username);
    $panier_data = $this->model_panier->getPanierData($username);
    var_dump($panier_data);

以下代碼應將您的數據發送到Panier/loadPanier/

$('#exampleFormControlSelect1').change(function(){
    var  val1 =$('#exampleFormControlSelect1').val();
    $.ajax({
        method: "POST",
        url: "Panier/loadPanier/",
        data: { username: val1}
    }).done(function( result ) {
        $("#tbodyid").empty();
        var data1 = JSON.parse(result);
        console.log(data1) ;
    });
});

每次執行var_dump()時,您都會看到null因為您嘗試獨立加載頁面。 如果您要通過表單轉到該頁面,則該頁面只會為您提供POST值,在這種情況下,表單是javascript。 當您使用javascript中的POST方法加載頁面時,響應會使用ajax發送到同一頁面,因此您可以使用代碼而無需刷新頁面。

另外:您無法return數據return到javascript。 您必須將其打印到客戶端,以便您的javascript的JSON解析器可以讀取它。 因此,而不是return $res;

echo json_encode($res);

暫無
暫無

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

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