Llamada AJAX - Error al cargar el recurso: el servidor respondió con un estado 500 (Error Interno del Servidor)
30 jun 2018, 16:39:13
Vistas: 21.9K
Votos: 0
Por favor ayuda. Tengo un plugin simple que usa una llamada ajax. Cuando llamo a otra función dentro de la función php de ajax (en el ejemplo siguiente estoy llamando a la función get_cat() desde la función update_passage_list()) obtengo el error "Error al cargar el recurso: el servidor respondió con un estado 500 (Error Interno del Servidor)".
quiz.js:
$jq =jQuery.noConflict();
$jq(document).ready(function($jq) {
update_passage_list(32);
});
var update_passage_list = function(id){
$jq.post(quiz.ajaxURL, {
action:"update_passage_list",
nonce:quiz.quizNonce,
cpid : id
}, function(return_data) {
alert('Datos Retornados = ' + return_data);
}, "json");
};
index.php:
<?php
/*
Plugin Name: WP Quiz
Plugin URI: -
Description: Descripción del plugin.
Author: Nombre del Autor
Version: 1.0
Author URI: url
*/
class WP_Quiz {
public $plugin_url;
public function __construct() {
$this->plugin_url = plugin_dir_url(__FILE__);
add_action('admin_enqueue_scripts', array($this, 'wpq_admin_scripts'));
add_action('wp_ajax_nopriv_update_passage_list', array($this, 'update_passage_list'));
add_action('wp_ajax_update_passage_list', array($this, 'update_passage_list'));
}
function wpq_admin_scripts() {
wp_enqueue_script('jQuery');
wp_register_script('quiz-admin', plugins_url('js/quiz.js', __FILE__), array('jquery'));
wp_enqueue_script('quiz-admin');
$config_array = array(
'ajaxURL' => admin_url('admin-ajax.php'),
'quizNonce' => wp_create_nonce('quiz-nonce'),
'plugin_url' => $this->plugin_url
);
wp_localize_script('quiz-admin', 'quiz', $config_array);
}
public function get_cat($id) {
$new_id = $id + 100;
return $new_id;
}
function update_passage_list() {
$cpid = $_POST['cpid'];
$cpid = get_cat($cpid);
echo $cpid;
die();
}
}
$quiz = new WP_Quiz();

user146122
3
Comentarios
Todas las respuestas a la pregunta
1
2
Estoy llamando a la función get_cat() desde la función update_passage_list()
Esto es lo que estás haciendo:
$cpid = get_cat($cpid);
No hay nada ahí que indique que get_cat()
sea un método de tu clase. Está intentando encontrar una función get_cat()
fuera de cualquier clase. Para usar el método de la clase necesitas usar $this
:
$cpid = $this->get_cat($cpid);

Jacob Peattie
43.9K
30 jun 2018 16:55:04
Preguntas relacionadas
3
respuestas
1
respuestas