簡體   English   中英

如何使用JQuery AJAX調用codeigniter輔助函數?

[英]How to call a codeigniter helper function using JQuery AJAX?

我在codeigniter中的helper函數中定義了一個函數,當val和currency id傳遞給它時返回格式化的價格。

if(!function_exists('format_price')){
function format_price($val,$curency_id=NULL){
    $CI =& get_instance();
    $CI->load->model('currency_model');
    if ($curency_id) {
        $Result=$CI->currency_model->getcurrency($curency_id);
        $dec_place=round($Result['decimal_place']);
        $value=number_format((float)$val,$dec_place,'.',',');
        return $Result['symbol_left'].$value ." ".$Result['symbol_right'];
    }
    else{
        $Result=$CI->currency_model->getDefaultCurrency();
        $dec_place=round($Result['decimal_place']);
        $value=number_format((float)$val,$dec_place,'.',',');
        return $Result['symbol_left'].$value ." ".$Result['symbol_right'];
    }
   }
}

我需要的是通過javascript代碼中的ajax調用此函數。 這可能沒有控制器,或者我是否需要制作控制器?

您需要通過控制器發出請求,然后通過該控制器調用該函數,例如:

$("#id").change(function()
{       
 $.ajax({
     type: "POST",
     url: base_url + "controller_name/your_function", 
     data: {val: $("#your_val").val(),currency_id: $("#your_cur").val()},
     dataType: "JSON",  
     cache:false,
     success: 
          function(data){
            $("#your_elem").val(data.price);
      }
});

然后在你的控制器上:

public function yourfunction()
{
   $data = $this->input->post();
   $price = format_price($data['val'],$data['currency_id']);
   echo json_encode(array('price' => $price));
}

而不是使用ajax嘗試這樣...

<script type="text/javascript">
  $(document).ready(function(){
    (function(){
      <?php if(helper_function($variable)) { ?>
          now your jquery script..........
      <?php } ?>
    });
  });
</script>

根據你的需要定制上面的代碼....

暫無
暫無

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

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