2017-02-10 12 views
0

私はラジオボタンを持っていて、どれが選択されているかを判断します。結果AJAX呼び出し後に変数に保存されません - CodeIgniter

私は私のホームコントローラを呼び出し、私のホームコントローラにはifステートメントがあります。 if文はデータベースから数値を返すモデルを指しています。

AJAXにエコー/コンソールログを記録すると、その番号が表示されます。私はその番号を抽出し、私のコードで送料としてそれを置く必要があります。

ますreturn $出荷、何も私は好きそれを呼び出す必要があります別のセクションでは

を返さないように取得し、私は何かを:$送料=の$ this - > shipping_zones();

保存しない理由はありますか?

AJAX

function Shipping_SelfFull(selforfull) { 

    var self_full = selforfull.value; 
    var url = ""; 

    if (self_full == 'self') { 
    url = base_url+'index.php/home/shipping_zones/self'; 
    console.log('you chose self'); 
    update_calc_cart(); 

    } else if (self_full == 'full') { 
    url = base_url+'index.php/home/shipping_zones/full'; 
    console.log('you chose full'); 
    update_calc_cart(); 

    } 

    $.ajax({ 
    url: url, 
    success: function(html){ 
     var shipping = html; 
     console.log(html); 
    } 
    }); 
} 

コントローラ

<?php 
function shipping_zones($para1=""){ 
    $shipping = ''; 

    if ($para1 == 'self') { 
    $shipping = $this->crud_model->shipping_based_on_zones('self'); 
    echo $shipping; 
    return $shipping; 
    } 

    if ($para1 == 'full') { 
    $shipping = $this->crud_model->shipping_based_on_zones('full'); 
    echo $shipping; 
    return $shipping; 
    } 
    return $shipping; 
} 
?> 

モデル

<?php 
// Shipping Based On Zones 
function shipping_based_on_zones($para1=""){ 

    if ($this->session->userdata('user_login') == "yes") { 
    $current_user_id = $this->session->user_id; 
    $user_membership_level = $this->db->query("SELECT * FROM user WHERE user_id='$current_user_id'")->row()->membership_level; 
    $user_country = $this->db->query("SELECT * FROM user WHERE user_id='$current_user_id'")->row()->country; 
    $country_zone_result = $this->db->query("SELECT * FROM country_zones WHERE country LIKE '%\"$user_country\"%'"); 
    } 

    if ($user_membership_level == '1') { 
    if ($para1 == 'self') { 
     return $country_zone_result->row()->vip_self_shipping; 
    } elseif ($para1 == 'full') { 
     return $country_zone_result->row()->vip_full_shipping; 
    } 
    } 


    if (($user_membership_level >= '2') && ($user_membership_level <= '5')) { 
    if ($para1 == 'self') { 
     return $country_zone_result->row()->member_self_shipping; 
    } elseif ($para1 == 'full') { 
     return $country_zone_result->row()->member_full_shipping; 
    } 
    } 
} 
?> 
+0

これはすべてあなたのコードですか?もしそうなら、ajax呼び出しで送信されるデータはありませんか? '' data:{} 'を使用してください –

+0

json_encodeをあなたの返信データをコントローラにエコーする必要があるかもしれません。 return json_encode($ shipping); – khushi

+0

いいえ、私はAJAXで私は結果をログコンソールを意味します。結果が表示されます。私はその結果を家のコントローラに保存して、それ以外の場所に表示する必要がありますが、私は疲れていません – D12L12

答えて

0

AJAXリクエストがされていません完了、ajaxが非同期であることを忘れないでください。それを回避する1つの方法は、強制的に同期させることです。私のためだけで正常に動作し

$.ajax({ 
    url: url, 
    async: false, 
    success: function(html){ 
    alert(html); 
    var shipping = html; 
    console.log(html); 
    } 
}); 

:このような偽

何か:それはあなたのAjaxで言われていると

非同期を使用してみてください。それが役に立てば幸い!

+0

。私はそれを変数を格納する必要がありますし、この関数を呼び出す必要がありますが、何も戻ってくることはありませんカートのもののコードの別の部分 – D12L12

関連する問題