admin管理员组文章数量:1304690
I'm coding a plugin that will be fetching data from the database and display it into a table.
I want to get a page with a select tag that will always be on the plugin's main page, select something and get it into the main page. So basically changing pages via the select tag without reloading the page.
The problem is, it seems that when the page is called via the ajax method, the object method (that worked when displaying it directly in the main page) doesn't work anymore.
I don't know if it's possible to make it work at all, if it's not, please tell me.
Plugin main page:
<?php
/*
Plugin Name: MRL validation
Description: Vérification et acceptation des adhérents.
Author: Ben
Version: 1.0
*/
if (!class_exists('MRL_validation')) {
class MRL_validation
{
function __construct()
{
include_once plugin_dir_path(__FILE__) . '/MRL_validation_plugin.php';
$inst_plugin = new MRL_validation_plugin();
if (isset($inst_plugin)) {
add_action("admin_menu", array($inst_plugin, 'mrl_plugin_menu'));
}
if (isset($_POST['action'])) {
add_action(
'wp_ajax_mrl_validation_admin',
array($inst_plugin, 'mrl_validation_admin_ajax')
);
}
}
}
}
if (class_exists('MRL_validation')) {
$mrl_val = new MRL_validation();
}
Plugin back end page:
<?php
class MRL_validation_plugin
{
function mrl_plugin_menu()
{
$pagePlugin = add_menu_page('MRL Validation', 'MRL Validation', 'administrator', 'MRL_Validation.php', array($this, 'mrl_validation_admin'), 'dashicons-valid');
add_action('admin_head-' . $pagePlugin, array($this, 'mrl_validation_admin_head'));
}
public static function getauditeurslist() //this method is called
{
global $wpdb;
$sql = "SELECT a.idAuditeur,a.Nom,a.Pays,a.Depuis,a.Ville,a.Age,a.Portrait,a.Email,a.Presentation,a.DecouverteMrl,a.RejoindreCaa,a.ApporterCaa,a.RoleCaa,a.Commentaire,a.idStatut,a.ValidationInscription,ca.type FROM Auditeurs AS a LEFT JOIN CAAStatuts AS ca ON a.idStatut = ca.idStatut WHERE a.ValidationInscription = 0 ORDER BY idAuditeur";
$auditeurslist = $wpdb->get_results($sql);
return $auditeurslist;
}
function editAuditeur($champ, $value, $id)
{
global $wpdb;
$sql = $wpdb->prepare(
"UPDATE Auditeurs SET " . $champ . "='" . $value . "' WHERE idAuditeur =" . $id
);
$req = $wpdb->query($sql);
return $req;
}
function mrl_validation_admin_head()
{
wp_register_style('mrl_validation_admin_css', plugins_url('css/mrl-validation-admin.css', __FILE__));
wp_enqueue_style('mrl_validation_admin_css');
wp_enqueue_style('font-awesome-5', '.15.2/css/all.min.css', array(), null);
wp_enqueue_script('mrl-validation-js', plugins_url('js/mrl-validation-js.js', __FILE__), array('jquery'));
wp_localize_script('mrl-validation-js', 'mrlvalidationadmin', array(
'ajaxurl' => admin_url('admin-ajax.php'),
'action' => 'mrl_validation_admin',
'nonce' => wp_create_nonce('mrl_validation_admin')
));
}
function mrl_validation_admin_ajax()
{
check_ajax_referer('mrl_validation_admin', 'nonce');
$update = $this->editAuditeur($_POST['field'], $_POST['value'], $_POST['id']);
exit();
}
function mrl_validation_admin()
{
require_once('template-admin.php');
}
}
ajax call:
jQuery(document).ready(function ($) {
$("#status").change(function () {
var val= $("#status").val();
$("#content").load("/wp-content/plugins/MRL-validation/" + val, function(response, status, xhr) {
if (status == "error") {
console.log(msg + xhr.status + " " + xhr.statusText);
} else {
console.log(msg + xhr.status + " " + xhr.statusText);
}
});
});
});
本文标签: phpWordpress ajax doesn39t display object method on jQuery change() function
版权声明:本文标题:php - Wordpress ajax doesn't display object method on jQuery .change() function 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741793005a2397770.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论