使用JSON和AJAX解析Javascript对象数组

时间:2014-09-02 17:49:03

标签: javascript php jquery ajax json

我有一个Javascript对象数组,在使用AJAX处理之前,我使用JSON.stringify()将其转换为字符串。

在服务器端,我要做的就是验证是否设置了正确的$_POST["flavors"]变量,并输出它的内容。我已经验证(通过一个简单的条件)$_POST["flavors"]正在设置,但我不知道如何修改ajax调用(或PHP)以正确输出它的内容。

  • 我在这里读到我可能需要为$ .AJAX调用设置dataType和/或在我的PHP脚本中设置标题,但我不确定设置标题是否适用,因为它在我的functions.php文件中。 *

(数组函数)

flavors = [];
  function wholesaleAJAX() {
  var sizeSelect = $('form#wholesale-size-form input:checked');
  if (sizeSelect.val() === 'regularBag') {
    $('select[name="wholesale-flavors-regular"] option:selected').each(function() {
        name = $(this).text();
        qty = $(this).closest('.row').find('div.large-3 select[name="wholesale-flavors-regular-count"] option:selected').text();
        flavors.push(new FlavorSelects(name, qty));
    });
} else if (sizeSelect.val() === 'largeBag') {
    $('select[name="wholesale-flavors-large"] option:selected').each(function() {
        name = $(this).text();
        qty = $(this).closest('.row').find('div.large-3 select[name="wholesale-flavors-large-count"] option:selected').text();
        flavors.push(new FlavorSelects(name, qty));         
    });     
}

(对数组进行字符串化并处理AJAX)

stringArray = JSON.stringify(flavors);
$.ajax({
    type:"POST",
    url: "/wp-admin/admin-ajax.php",
    data: {
        action: "returnHash",
        flavors: stringArray
    },
    success:function(data){
        $("#ajax").html(data);
    }
});

(PHP用于处理functions.php中的AJAX)

function returnHash() {
  if (isset($_POST["flavors"])) {
    $flavors = json_decode($_POST["flavors"]);
    print_r($flavors);
  } else {
    echo 'Not Set';
  }
  die();
}
add_action('wp_ajax_returnHash', 'returnHash');
add_action('wp_ajax_nopriv_returnHash', 'returnHash');

0 个答案:

没有答案