500在Codeigniter 3中使用Ajax时发生内部服务器错误



我正试图使用ajax来POST一些数据,以使用这些数据只刷新一个标记的内容,但在调试时出现了500内部服务器错误。

这是我的视图代码:

<select id='combolocalidad' name="selectLocalidad" class="form-control">
<option value="0">Seleccione una localidad:</option>
<?php
$i= 0;
// Realizamos la consulta para extraer los datos
foreach ($consultalocalidades->result_array() as $fila ):
$i++;
// En esta sección estamos llenando el select con datos extraidos de una base de datos.
echo '<option value="'.$fila['id_localidad'].'">'.$fila['localidad'].'</option>';
?>
<?php endforeach; ?>
</select>

这是ajax代码:

$(document).ready(function(){
$('#combolocalidad').on( 'change', function(){ 
let localidadValue = $('#combolocalidad').val();
$.ajax({
type: 'POST',
url: 'InmueblesController/apiComboLocalidad',
dataType: "json",
data: { 
localidadValue: localidadValue,
},
success: function(response){
console.log(JSON.parse(response));
}
})
} );

});

这是控制器代码:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class InmueblesController extends CI_Controller {

public function index()
{
$dato['consulta']=$this->InmueblesModel->consultar_inmuebles();
$dato['consultalocalidades']=$this->InmueblesModel->consultar_localidades();
$dato['consultabarrios']=$this->InmueblesModel->consultar_barrios();
$this->load->view('head');
$this->load->view('inmuebles', $dato);
$this->load->view('footer');
}
public function apiComboLocalidad()
{
$localidadId = $this->input->post('localidadValue');
//print_r($_POST);
if(!empty($localidadId)){
$dato['consultabarriosById'] = $this->InmueblesModel->consultar_barrios_byId($localidadId);
$json = array();
foreach ($consultalocalidades->result_array() as $row ){
$json[] = array(
'id_barrio' => $row['id_barrio'],
'barrio' => $row['barrio']
);
$i++;
}
echo json_encode($json);
}
}
}

当我尝试打印后请求

$localidadId = $this->input->post('localidadValue');

它是空的,因此控制器的条件永远不会运行。当我改变<select id='comlocalidad'>y获取内部服务器错误。

我试过这样发送数据,但它不起作用:

data: { localidadValue }

我试过使用这个,但它不起作用:

$localidadId = $this->input->post('localidadValue', true);

或者:

$localidadId = $this->input->post();

我还尝试使用base_URL((来使用完整的URL,但它不起作用。

求你了,帮帮我!

这其中的错误可能是因为您正在调用的页面中存在php错误。在php.ini中,应该启用display_errors。您可以在chrome-dev工具中看到错误>"网络"选项卡>在列表中查找您正在调用的进程。

通过删除单个科特localidadValue来尝试这样做

data: 
{ 
localidadValue: localidadValue,
}

这可能有助于

使用

dataType: "json",
data: 
{ 
localidadValue: localidadValue,
}

相关内容

  • 没有找到相关文章

最新更新