gpt4 book ai didi

php - 如何使用ajax在WordPress中调用外部php文件

转载 作者:行者123 更新时间:2023-12-01 04:15:44 25 4
gpt4 key购买 nike

我在使用 ajax 调用 WordPress 插件中的文件时遇到了一些问题。我有这个脚本:

<script type="text/javascript">
function setVal()
{
var val = jQuery('#custom_text_message').val()
alert('Setting the value to "' + val + '"')
jQuery.post('session.php', {value: val})
alert('Finished setting the value')
}
jQuery(document).ready(function() {
jQuery('#custom_text_message').blur(function() {setVal()});
//setTimeout('setVal()', 3000);
});
</script>

但是当调用此函数时,它会在控制台文件中显示错误未找到。我想知道这是否是在 WordPress 中使用 ajax 的正确方法。如果没有,我如何调用站点名称session.php根文件夹中的文件?我对 WordPress 还很陌生。

最佳答案

我已经自己解决了我的问题。首先我在我的主题中定义了 ajaxurl function.php 如下所示:

<?php
add_action('wp_head','pluginname_ajaxurl');
function pluginname_ajaxurl() {
?>
<script type="text/javascript">
var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
</script>
<? }
?>

我将以下脚本放在我的插件文件的顶部。

<script type="text/javascript">
function setVal()
{
var val = jQuery('#custom_text_message').val()
var data = {
action: 'my_action',
value: val,
};

jQuery.post(ajaxurl, data, function(response) {
alert('Got this from the server: ' + response);
});
}

jQuery(document).ready(function() {
jQuery('#custom_text_message').blur(function() {setVal()});
//setTimeout('setVal()', 3000);
});
</script>

这是我正在尝试在插件中执行的字段。

<textarea name="custom_text_message"  id="custom_text_message"></textarea>

然后我将我要调用的操作放入 function.php 中的脚本中。

add_action('wp_ajax_my_action', 'my_action_session');

function my_action_session() {
global $wpdb; // this is how you get access to the database

session_start();

$_SESSION['cus_msg'] = $_POST['value'];

die(); // this is required to return a proper result
}

然后将我的 session 值调用到我的函数中。这就是我所做的一切并为我工作,我希望这对其他人有帮助。

注意:wp_ajax_your_action 操作用于管理员,如果您需要在前端使用它,则该操作将为 wp_ajax_nopriv_your_action

关于php - 如何使用ajax在WordPress中调用外部php文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14931270/

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