将序列化数据从PHP传递到数组中的JavaScript

时间:2018-01-05 12:03:10

标签: javascript php ajax woocommerce

我正在尝试使用AJAX将WooCommerce产品信息从PHP传递到Javascript,以便在某些值发生变化时可以在前端更新。我已经完成了大部分流程,但是我在向JavaScript发送序列化数据并正确接收时遇到了一些问题。

PHP

add_action('wp_ajax_variation_action', 'get_variation_details');
add_action('wp_ajax_nopriv_variation_action', 'get_variation_details');

function get_variation_details(){
    $variation_id = $_POST['variation'];
    $product = wc_get_product($variation_id);
    $sku = $product->get_sku();
    $description = $product->get_description();
    $downloads = $product->get_downloads();
    $downloads = unserialize($downloads);

    $variation_info[] = array(
        'sku' => $sku,
        'description' => $description,
        'downloads' => $downloads,
    );

    echo json_encode($variation_info);
    exit;
}

这里我得到了一些值,例如产品SKU和描述,然后将它们放入一个名为$ variation_info的数组中,并且在将它回送给JS之前对该数组进行JSON编码。

这样可以正常工作但是$ downloads变量会出现问题。这里提取的数据存储为序列化字符串,当我将其传递给JS时,它只传递字符串的第一部分。我首先尝试使用unserialize函数,但这似乎不起作用。

0 个答案:

没有答案