2015-11-03 279 views
0

我的AJAX代碼存在一些問題。我的任務是創建一個笨一些相關的下拉選擇框,所以我用AJAX:Ajax 500(內部服務器錯誤)Codeigniter

<script type="text/javascript"> 
    $('#ruangan, #ruangan_label').hide(); 
    $('#unit').change(function() { 
     var unit_id = $('#unit').val(); 
     if (unit_id != "") { 
      var post_url = "getruangan" + unit_id; 
      $.ajax({ 
       type: "POST", 
       url: post_url, 
       success: function(ruangan) { 
        $('#ruangan').append(ruangan); 
       } 
      }); 
      /* $('#ruangan, #ruangan_label').show(); */ 
     } else { 
      $('#ruangan').empty(); 
      $('#ruangan, #ruangan_label').hide(); 
     } 
    }); 
</script> 

這裏是我的控制器:

function getruangan($units) 
{ 
    $unit = explode('|', $units); 
    $unitkerja = $unit[0]; 
    $this->load->model('admin/laporanmodel', '', TRUE); 
    echo (json_encode($this->laporanmodel->get_ruangan($unitkerja))); 
} 

這是我eror從控制檯:

POST http://localhost:8080/simas/admin/laporan/getruangan023040500414964002KD%7CBPSPP 500 (Internal Server Error) 
send @ jquery.min.js:6 
x.extend.ajax @ jquery.min.js:6 
(anonymous function) @ repdbr:250 
x.event.dispatch @ jquery.min.js:5 
v.handle @ jquery.min.js:5 
ListPicker._handleMouseUp @ about:blank:810 

I have no problems with the connection between controller and model. Can you help me? 
+0

您的標題顯示500 apache錯誤,這不是非常具體。你有沒有收到任何錯誤信息? – Jan

+1

把你的錯誤報告,看看真正的問題。改變你的環境來開發'define('ENVIRONMENT','development');' –

+0

爲什麼你可以直接在你的url中設置'unit_id',你可以傳遞它作爲get/post數據? – madalinivascu

回答

1

你的函數需要一個參數,但是你不能正確發送它,除非你的變量unit_id包含一個斜槓/

var post_url = "getruangan" + unit_id; 
// Output: getruangan55 

由於您使用的是POST,因此不需要將其作爲url參數發送。

if(unit_id == '') 
{ 
    $('#ruangan').empty(); 
    $('#ruangan, #ruangan_label').hide(); 

    return; 
} 

$.ajax(
{ 
    type: 'POST', 
    url: 'getruangan', 
    data: {'unit_id': unit_id, 'otherParam': otherValue}, 
    success: function(response) 
    { 
     $('#ruangan').append(response); 
    } 
}); 

在PHP方面,您可以通過$_POST訪問內容。

print_r($_POST); // To check the values passed 
print_r($this->input->post('unit_id')); // To access a value