在 Codeigniter 3 中使用 Ajax 出现 500 内部服务器错误
500 Internal Server Error using Ajax in Codeigniter 3
我正在尝试 POST 使用 ajax 一些数据来仅刷新使用该数据的一个标签的内容,但我在调试时遇到 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);
}
}
}
当我尝试打印 post 请求时
$localidadId = $this->input->post('localidadValue');
它是空的,所以控制器的条件永远不会运行。
当我更改
我试过这样发送数据,但是不行:
data: { localidadValue }
我试过用这个,但没用:
$localidadId = $this->input->post('localidadValue', true);
或者:
$localidadId = $this->input->post();
我也尝试使用 base_url() 来使用完整的 URL,但它不起作用。
请帮帮我!
像这样尝试删除单个cotes localidadValue
data:
{
localidadValue: localidadValue,
}
可能会有帮助
使用
dataType: "json",
data:
{
localidadValue: localidadValue,
}
这里的错误可能是因为你调用的页面有php错误。在您的 php.ini 中,您应该启用 display_errors。您可以在 chrome 开发工具 > 网络选项卡 > 在列表中找到您正在调用的进程中看到错误。
我正在尝试 POST 使用 ajax 一些数据来仅刷新使用该数据的一个标签的内容,但我在调试时遇到 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);
}
}
}
当我尝试打印 post 请求时
$localidadId = $this->input->post('localidadValue');
它是空的,所以控制器的条件永远不会运行。 当我更改
我试过这样发送数据,但是不行:
data: { localidadValue }
我试过用这个,但没用:
$localidadId = $this->input->post('localidadValue', true);
或者:
$localidadId = $this->input->post();
我也尝试使用 base_url() 来使用完整的 URL,但它不起作用。
请帮帮我!
像这样尝试删除单个cotes localidadValue
data:
{
localidadValue: localidadValue,
}
可能会有帮助
使用
dataType: "json",
data:
{
localidadValue: localidadValue,
}
这里的错误可能是因为你调用的页面有php错误。在您的 php.ini 中,您应该启用 display_errors。您可以在 chrome 开发工具 > 网络选项卡 > 在列表中找到您正在调用的进程中看到错误。