最初我是这样调用ajax的 function deleteRow(val) { -6ren">
gpt4 book ai didi

javascript - Ajaxurl 返回 0

转载 作者:行者123 更新时间:2023-11-30 00:11:26 25 4
gpt4 key购买 nike

我正在制作一个 wordpress 插件,允许管理员通过单击按钮删除数据库中的特定行

<td>
<img src="/DeleteRed.png" onclick="deleteRow(<?php echo $rowa->id?>)"><br>
</td>

最初我是这样调用ajax的

function deleteRow(val) {
var url = "id="+val;
alert (url);
$.ajax(
{
type:'GET',
url:"../wp-content/plugins/salah-world/delete.php",
data:url,
success:function(data) {
console.log(data);
}
});
}

并使用此 PHP 代码

<?php
$id=$_GET["id"];
define('WP_USE_THEMES', false);
require_once( dirname(dirname(dirname(dirname(__FILE__)))) . '/wp-load.php');
echo $id."ID";
global $wpdb;

$table_name = $wpdb->prefix . 'iqamahTimes';
$wpdb->delete( $wpdb->prefix . 'iqamahTimes' , array( 'id' => $id ) );
?>

工作正常,返回 id 并将其从数据库中删除。但是当我提交我的插件时,Wordpress 说调用 wp-load.php 很重要,不行不行。我明白为什么。

然后我尝试使用 ajaxurl 并为 ajax 想出了这个

function deleteRow(val) {
var url = val;
alert (url);
$.ajax(
{
url:ajaxurl,
data: {
'action':'exampleajaxrequest',
'id' : url
},
success:function(data)
{
console.log(data);
//location.reload(true);
}
});

}

php如下

function exampleajaxrequest() {
$id = $_REQUEST['id'];
echo($id."id");
global $wpdb;
$table_name = $wpdb->prefix . 'iqamahTimes';
$wpdb->delete( $wpdb->prefix . 'iqamahTimes' , array( 'id' => '5' ) );
die();
}

我已经将 add_action 放在构造方法下,如下所示

public function __construct(){
add_action( 'wp_ajax_exampleajaxrequest', 'exampleajaxrequest' );
add_action( 'wp_ajax_nopriv_exampleajaxrequest', 'exampleajaxrequest' );

add_action("admin_menu", array($this,"add_plugin_menu_fnbar"));
add_action("admin_init", array($this,"register_dasettings"));

add_action('admin_enqueue_scripts', array($this, 'register_admin_scripts'));
}

但是当我运行它时出现这个错误
警告:call_user_func_array() 期望参数 1 是有效的回调,未找到函数“exampleajaxrequest”或 /home/he/public_html/sd.org/wp/wp- 中的函数名称无效includes/plugin.php 在线 525
0

当我将 add_Action 方法放在其他地方时,我只得到 0 并且该行没有任何变化。

注意:这是一个后端脚本。

最佳答案

我在这里推测,但是函数 exampleajaxrequest 实际上是插件类中的一个方法吗?

如果是这样,你需要像这样排队:

add_action( 'wp_ajax_exampleajaxrequest', array($this,'exampleajaxrequest') );
add_action( 'wp_ajax_nopriv_exampleajaxrequest', array($this,'exampleajaxrequest') );

关于javascript - Ajaxurl 返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36338142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com