javascript - 我正在尝试在 wordpress 中学习 ajax 以删除表格条目,但在放置时感到困惑
问题描述
我创建了一个 wordpress 插件来为不同联赛中的运动队添加赛程和结果,您可以查看每个联赛的赛程和结果并根据需要删除/编辑它们。
我在末尾添加了一个名为 Delete 的按钮,当我单击该按钮时,我希望它从表中删除条目并使整个条目随着淡入淡出而消失。
我一直在查找有关 ajax 如何与 wordpress 一起使用的网站,但我感到困惑。
这是我的插件中 fixtures_admin.php 页面上的按钮代码和 javascript。
<input type="button" id="<?php echo $elementid; ?>" class="submitDeleteEntry" name="submitDeleteEntry" value="Delete" />
<script type="text/javascript">
jQuery(document).on('click', '.submitDeleteEntry', function () {
var id = this.id;
//alert(id);
jQuery.ajax({
type: 'POST',
url: ajaxurl,
data: {"action": "fws_delete_row", "id": id},
success: function (data) {
}
});
});
</script>
$elementid 只是使用数据库中的变量 id 并按预期工作。
如果我取消注释警报(id);我确实收到了带有 id 的警报。
我已将此代码放在注册 ajax 的页面顶部
function fws_delete_row(){
global $wpdb;
$dbtable = $wpdb->prefix . 'fws_fixtures';
$id = $_POST['id'];
$wpdb->delete($table, array('id' => $id));
}
add_action( 'wp_ajax_fws_delete_row', 'fws_delete_row' );
add_action( 'wp_ajax_nopriv_fws_delete_row', 'fws_delete_row' );
但是当我单击删除按钮时,什么也没有发生。我曾尝试在互联网上寻找如何做到这一点的例子,但似乎无法找到做到这一点的方法。
我很高兴自己得出结论,但如果有人可以向我解释我哪里出错了,我真的很想学习。
我知道一旦从数据库中删除,我将需要添加更多代码以在页面上删除该行,但现在我只想让按钮至少删除。
我非常感谢你的帮助。
解决方案
I have figured out where I was going wrong, I just had the javascript at the bottom of the file, I had not registered it correctly as indicated in this page https://codex.wordpress.org/AJAX_in_Plugins
I needed to load it into the admin_footer using the code below
add_action( 'admin_footer', 'fws_delete_javascript' );
function fws_delete_javascript() { ?>
<script type="text/javascript">
jQuery(document).on('click', '.submitDeleteEntry', function () {
var id = this.id;
//alert(id);
jQuery.ajax({
type: 'POST',
url: ajaxurl,
data: {"action": "fws_delete_row", "id": id},
success: function (data) {
}
});
});
</script>
<?
}
推荐阅读
- tensorflow - 如何将具有 [H,W,C] 形状的批量图像转换为大小为 [N,H,W,C] 的字典?
- python - Pandas 根据值重新定位列值
- javafx - 错误“javafx.scene.CssStyleHelper calculateValue”是什么意思?
- javascript - 实现一个接受项目列表和回调的函数
- thinkscript - 如何创建一个保留其值的变量
- css - SVG将渐变修改为通过“使用”重用的元素
- laravel - Laravel Jobs:假设索引“job”导致错误
- android - 如何从 WindowManager 获取“视图”
- c++ - 使用 libharu 将 PNG 图像从文件加载到内存缓冲区
- javascript - axios 不返回承诺,不同步