Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php TinyMCE Modal的WordPress管理Ajax_Php_Jquery_Ajax_Wordpress - Fatal编程技术网

Php TinyMCE Modal的WordPress管理Ajax

Php TinyMCE Modal的WordPress管理Ajax,php,jquery,ajax,wordpress,Php,Jquery,Ajax,Wordpress,我试图从WordPress admin中的一个小模式窗口访问ajax调用的admin ajax和nonce变量,但是我对ajax admin url和nonce的调用返回未定义 本地化脚本 <?php function alm_admin_vars() { ?> <script type='text/javascript'> /* <![CDATA[ */ var alm_admin_localize = <?php echo json_encode( ar

我试图从WordPress admin中的一个小模式窗口访问ajax调用的admin ajax和nonce变量,但是我对ajax admin url和nonce的调用返回未定义

本地化脚本

<?php function alm_admin_vars() { ?>
<script type='text/javascript'>
 /* <![CDATA[ */
var alm_admin_localize = <?php echo json_encode( array( 
    'ajax_admin_url' => admin_url( 'admin-ajax.php' ),
    'alm_admin_nonce' => wp_create_nonce( 'alm_repeater_nonce' )
)); ?>
/* ]]> */
</script><?php }
这个Ajax调用需要从TinyMCE模式以及标准WordPress插件设置屏幕中重用

有没有办法从TinyMCE模式窗口访问'alm_admin_localize'变量

我已经研究过如何使用
window.opener
,但这不起作用


非常感谢您的帮助。

我不知道这是否能解决您的问题,但让您的客户机和服务器通过JSON而不是HTML进行通信会稍微澄清一些问题:

服务器端
假设您可以从TinyMCE模式进行相同的AJAX调用,
alm\u admin\u localize
现在应该可以在回调中使用,您可以随意使用。

哇,有时候我真的试图让事情变得过于复杂。。。答案是在调用alm_admin_localize变量之前添加window.parent。最后一个Ajax调用如下所示:window.parent.alm_admin_localize.Ajax_admin_url。
$.ajax({
        type: 'GET',
        url: alm_admin_localize.ajax_admin_url,
        data: {
            action: 'alm_get_tax_terms',
            taxonomy: tax,
            nonce: alm_admin_localize.alm_admin_nonce,
        },
        dataType: "html",
        success: function(data) {           
            console.log(data);
        },
        error: function(xhr, status, error) {
            console.log('error');
        }
    });
<?php

function alm_admin_vars() {
    return array(
        'alm_admin_localize' => array(
            'ajax_admin_url' => admin_url( 'admin-ajax.php' ),
            'alm_admin_nonce' => wp_create_nonce( 'alm_repeater_nonce' )
        )
    );
}

// Respond with JSON
header('Content-type: application/json');
echo json_encode(alm_admin_vars());
$.ajax({
    type: 'GET',
    dataType: "json",
    ...
    success: function(data) {           
        console.log('My alm_admin_localize data:', data.alm_admin_localize);
        // Ready to update the DOM related to TinyMCE modal
    }
});