将PHP数组转换为jQuery数组“未捕获语法错误:意外标记<”

时间:2017-10-26 作者:C.Yasa

我试图将我的php数组传递给jQuery数组,但我在chrome控制台上遇到了这个错误,未捕获语法错误:意外的标记<;

功能。php

/*Call Jquery for dropdowns*/
function mytheme_custom_scripts(){
    if ( is_page(\'Support\')) {
            $scriptSrc = get_stylesheet_directory_uri() . \'/js/freshdeskdata.js\';
            wp_enqueue_script( \'myhandle\', $scriptSrc , array(), \'1.0\',  false );
    }
}
add_action( \'wp_enqueue_scripts\', \'mytheme_custom_scripts\' );
/*End - Jquery*/    

add_filter(\'wpcf7_form_tag_data_option\', function($n, $options, $args){

        ...

        // Category
        if (in_array(\'category.provider\', $options)){

            ...      

            // Getting results
            $result = curl_exec($ch); // Getting jSON result string

            curl_close($ch);

            $data = json_decode($result, true);
            global $choice; // This is my array
            $choice = $data[0][\'choices\'];
            ksort($choice);

        return array_keys($choice);
        }

        // default - do not apply any changes within the options
        return null;
    }, 10, 3);
/js/freshdeskdata。js公司

jQuery(function ($) { 
  $(document).ready(function() {  
    $("#main-category").on(\'change\', function() {
     var arrayFromPHP = <?php echo json_encode($choice); ?>;
     var $el = $("#sub-category");
     $el.empty();
     alert("arrayFromPHP");
    });
  });
});

1 个回复
最合适的回答,由SO网友:86Dev 整理而成

要根据用户在其他输入/选择中选择的内容更改选择,您需要使用WP AJAX API.

在您的功能中。php,使用wp_localize_script() 获取前端可用的AJAX url并定义AJAX操作回调

function mytheme_custom_scripts() {
    if ( is_page(\'Support\') ) {
        $scriptSrc = get_stylesheet_directory_uri() . \'/js/freshdeskdata.js\';
        wp_enqueue_script( \'myhandle\', $scriptSrc , array(), \'1.0\',  false );
        wp_localize_script( \'myhandle\', \'mydata\', array( \'ajaxurl\' => admin_url(\'admin-ajax.php\') ) );
    }
}
add_action( \'wp_enqueue_scripts\', \'mytheme_custom_scripts\' );

function get_choices() {
    $main_category = $_POST[\'main_category\'];
    $choices = []; // todo: get choices here
    wp_send_json_success($choices); // send data with success code and die
}
add_action(\'wp_ajax_get_choices\', \'get_choices\'); //back-end
add_action(\'wp_ajax_nopriv_get_choices\', \'get_choices\'); //front-end
然后在脚本中进行AJAX调用以获得选择

jQuery(function ($) {
    $(document).ready(function() {  
        $("#main-category").on(\'change\', function() {
            $.post(mydata.ajaxurl, { // mydata has been created by the wp_localize_script function
                action: \'get_choices\',
                main_category: $("#main-category").val()
            }, function (response) {
                console.log(response)
                // todo: display new choices
            })
        });
    });
});

结束

相关推荐

在函数php中从Foreach返回所有值

我在函数中有一个foreach,我想返回所有值,然后将其存储在一个变量中,以添加到wp\\u insert\\u post函数中的post\\u内容中。我尝试回显数组中的所有键并返回,但当我使用return时,它只返回第一个值。我做了一些研究,人们说我需要将其存储在一个数组中,以便能够返回它,但当我将其添加到帖子内容时,它会回显数组();function returncartdata($data) { foreach ($data as $carthtml => $item