Problema de ajax del método Codeigniter relacionado con la URL

Tengo un controlador donde tengo un método llamado index. En este método, estoy recuperando datos de la base de datos y usando una biblioteca de paginación configurando variables para ver la paginación. Cuando agrego un nuevo registro, estoy presionando otra función usando ajax. Allí después de la inserción llamo

$this->index();

Ahora en el índice estoy comprobando una condición.

if($this->input->is_ajax_request()){
    //dont load header and footer
}

pero el problema es que cuando llego al índice desde mi función de guardar, pierde la solicitud de ajax y mi condición en la función de índice no está marcada y el encabezado y el pie de página siempre están cargados. Quiero que la solicitud de ajax siga disponible incluso si salto de un método de codeigniter a otro. ¿Cualquier sugerencia? O alternativa. Porque no quiero crear otra función donde cree la paginación nuevamente con el encabezado y el pie de página omitidos.

preguntado el 12 de junio de 12 a las 10:06

1 Respuestas

Algo que puede ser útil es Clase de sesión de CodeIgniter que tiene un método flashdata. Flashdata es un bit de datos de sesión que solo se almacena para la próxima solicitud del servidor, luego se elimina.

En su función de guardar, podría tener esto al final:

$this->session->set_flashdata('ajax', true);

y como parte de la condición en su función de índice, podría tener:

if($this->input->is_ajax_request() || $this->session->flashdata('item')){
    //dont load header and footer
}

Esto luego verificaría que la solicitud era en realidad una solicitud ajax O que una variable de sesión se ha configurado temporalmente para decirle a CodeIgniter que debe tratarse como una solicitud ajax.

Respondido el 12 de junio de 12 a las 10:06

Gracias, esto resolvió mi problema. Nunca he echado un vistazo a los datos flash, pero ahora me alegro de haberlo aprendido. muhammad raheel

también he encontrado en lugar de usar $this->index(); redirigir (myurl) está funcionando bien - muhammad raheel

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.