【问题标题】:Wordpress plugin can't receive ajax post dataWordpress 插件无法接收 ajax 发布数据
【发布时间】:2015-10-23 13:03:12
【问题描述】:

我正在尝试开发一个将变量发送到我的服务器的 WordPress 插件。 到目前为止,如果我将下面的代码用作单独的 PHP 文件,而不是在我的脚本中,效果很好。它会发送变量并从远程 PHP 文件接收结果。

如果我将相同的代码放入我的自定义 WordPress 插件中,它不会收到任何内容。

我的代码:

<script>
    jQuery(document).ready(function(){     
        jQuery(".adminpnlnshbutton").click(function(){
            var usermail = jQuery('#uemail').val();
            var userkey = jQuery('#ukey').val();
            var dataString = 'usermail='+ usermail + '&userkey='+ userkey;
            $.ajax({
                type: "POST",
                url: "http://www.myremotedomain.co.uk/check.php",
                data: dataString,
                crossDomain: true,
                dataType: 'html',
                success: function(data) {
                    alert (data);
                }
            });
        });
    });
</script>

然后检查 PHP:

$m = $_POST['usermail'];
$k = $_POST['userkey'];
$s = " | ";
echo $m . $s . $k;

作为 WordPress 插件:

<?
    add_action('admin_menu', 'test_plugin_setup_menu');

    function test_plugin_setup_menu(){
            add_menu_page( 'Test Plugin Page', 'Tes Plugin', 'manage_options', 'test-plugin', 'test_init' );
    }

    function test_init(){
        if (is_user_logged_in()) { 
?>
    <input name="uemail" type="text" id="uemail" value="email" />
    <input name="ukey" type="text" id="ukey" value="activation key" />
    <div class="adminpnlnshbutton">SEND</div>
    <script>
        jQuery(document).ready(function(){     
            jQuery(".adminpnlnshbutton").click(function(){
                var usermail = jQuery('#uemail').val();
                var userkey = jQuery('#ukey').val();
                var dataString = 'usermail='+ usermail + '&userkey='+ userkey;
                $.ajax({
                    type: "POST",
                    url: "http://www.myremotedomain.co.uk/check.php",
                    data: dataString,
                    crossDomain: true,
                    dataType: 'html',
                    success: function(data) {
                    alert (data);
                    }
                });
            });
        });
    </script>
<?
    }
    }
?>

知道为什么我无法在插件中接收数据吗?

【问题讨论】:

    标签: php jquery ajax wordpress


    【解决方案1】:

    已解决...我必须添加 jquery

    function pw_loading_scripts_wrong() {
        echo '<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>';
    }
    add_action('admin_head', 'pw_loading_scripts_wrong');
    

    【讨论】:

      【解决方案2】:

      Ajax 调用 URL 在 Wordpress 中必须是“wp-admin/admin-ajax.php”。 谢谢。

      【讨论】:

      • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
      猜你喜欢
      • 1970-01-01
      • 2016-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多