#php #jquery #codeigniter
#php #jquery ( jquery ) #codeigniter — инициализатор кода
Вопрос:
Это широко задаваемый вопрос, чтобы помочь с этой ошибкой, но я потратил весь день на чтение других ответов и создание различных версий для своего кода и до сих пор не могу получить ничего другого, кроме этой ошибки. Поэтому я прошу вашей помощи.
My view:
<html>
<head>
<title></title>
<?=$head?>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?key=AIzaSyAhiKwDjhm1ZXS1jHBHErJf6pxT2TUCMM4"></script>
<script src="<?php echo base_url() ?>scripts/jquery.colorbox-min.js"></script>
<script src="<?php echo base_url() ?>scripts/gmaps.js"></script>
<link rel="stylesheet" href="<?php echo base_url() ?>css/colorbox.css">
<style type="text/css">
#map {
width: 700px;
height: 700px;
}
</style>
</head>
<body>
<button id="go-button" type="button">Click Me!</button>
<div class="multiselect">
<label><input type="checkbox" value="all" />All</label>
<label><input type="checkbox" name="filtrs1[]" value="manufacturer1" />manufacturer1</label>
<label><input type="checkbox" name="filtrs1[]" value="manufacturer2" />manufacturer2</label>
<label><input type="checkbox" name="filtrs1[]" value="manufacturer3" />manufacturer3</label>
<label><input type="checkbox" name="filtrs1[]" value="manufacturer4" />manufacturer4</label>
</div>
<div id="map"></div>
<script type="text/javascript">
var products= <?= json_encode($products);?>;
var allMap;
$(document).ready(function(){
var allMap = new GMaps({
el: '#map',
zoom: 7,
lat: 37.4419,
lng: -122.1419
});
loadJsonMap(allMap, products);
$('#go-button').click(function(){
var chb = $("input[name='filtrs1[]']:checked");
var filtrs1values = [];
$.each(chb,function(){
filtrs1values.push($(this).val());
});
$.post('<?php echo base_url() ?>index.php/products/filter', {
filtrs1 : filtrs1values
}, function(response){
allMap.removeMarkers();
loadJsonMap(allMap, response);
});
});
});
function loadJsonMap(map, data){
var markers_data = [];
$.each(data, function(key, val){
if (val.latitude != undefined amp;amp; val.longitude != undefined) {
markers_data.push({
lat : val.latitude,
lng : val.longitude,
details : {
holder_id : val.holder_id
},
click : function(e){
if(e.details.holder_id !== undefined){
var url = '<?php echo base_url() ?>index.php/products/colorbox/' e.details.holder_id;
$.colorbox({
open : true,
href : url,
iframe : false,
innerWidth : 400,
innerHeight : 400,
close : 'Aizvert'
});
}
}
});
}
});
map.addMarkers(markers_data);
}
</script>
</body>
</html>
где $.post вызывает запросы для продуктов контроллера:
public function filter()
{
$data['manufacturer'] = $this->input->post('filtrs1');
$result = $this->products_model->get_productsByManufacturer($data);
// $result = $this->security->get_csrf_token_name();
// $result = $this->security->get_csrf_hash();
header('Cache-Control: no-cache, must-revalidate');
header('Content-Type: application/json');
echo json_encode($result);
}
где в products_model:
function get_productsByManufacturer($data)
{
if(empty($data['manufacturer']){
$this->db->select("latitude,longitude, holder_id");
$query = $this->db->get('products');
return $query->result_array();
}else{
$this->db->select("latitude,longitude, holder_id");
$this->db->where_in('manufacturer', $data['manufacturer']);
$query = $this->db->get('products');
return $query->result_array();
}
}
Я получаю сообщение об ошибке в строке $.post. Я проверил массив filtrs1values с помощью consule.бревно так и попало ["manufacturer3", "manufacturer4"]
. Кроме того, я несколько раз менял свой контроллер и код модели, но всегда получал одну и ту же ошибку.
Комментарии:
1. Jquery не удалось сгенерировать ошибку 500, поскольку эта ошибка на стороне сервера. Ошибка в вашем php-коде, который генерирует ошибку 500. Это вызванный URL-адрес, который вызвал это. Что произойдет, если вы вызовете его напрямую (или через Postman)?
2. Замените строку «$.post(‘<?php echo base_url() ?>index.php/products/filter’ » на $.post(‘<?php echo base_url(«index.php/products/filter») ?>’ а затем попробуйте. Я думаю, что это проблема с URL
3. Спасибо за предложение, я использовал прямой вызов для просмотра ошибок php и исправил его. Каждый раз, когда я вношу большие изменения в свою модель, я создаю ее копию. По какой-то причине мой контроллер искал в products_model — copy. php.
4. У вас включен токен csrf