Я пытаюсь передать некоторые JSON в PHP скрипт через AJAX, вот мой JavaScript:JSON не проходя через AJAX POST
jQuery(document).ready(function($) {
/**
* AJAX add to cart
*/
$(".single_add_to_cart_button").each(function() {
var el = $(this);
el.click(function(e) {
var product_data = $("#jsonVariations").val();
e.preventDefault();
$(this).text('Adding to cart');
// try ajax
$.ajax({
url: myAjax.ajaxurl,
type: "POST",
data: {
action: 'add_bv',
product_data: product_data,
},
dataType: "json",
//contentType: "application/json",
success: function (result) {
el.text("Added to cart");
},
error: function (xhr, ajaxOptions, thrownError) {
el.text("Not added to cart");
//alert(xhr.status);
alert(thrownError);
}
});
return false;
});
});
});
JSON действует (проверено с помощью jsonlint) и somehting, как это:
`[{"variationQty":5,"variationID":"50","variationSize":"2xl","variationColour":"grey"},{"variationQty":10,"variationID":"51","variationSize":"2xl","variationColour":"navy"}]
Мой PHP скрипт:
$product_data = $_POST['product_data'];
$product_data = json_decode($product_data, true);
foreach ($product_data as $product) {
$product_qty = intval($product->variationQty);
$product_id = 24;
$product_variation_id = $product->variationID;
$product_variation = array(
'colour' => $product->variationColour,
'size' => $product->variationSize,
);
WC()->cart->add_to_cart($product_id, $product_qty, $product_variation_id, $product_variation);
}
Я опробована установка $product_data
VARI умеет вручную использовать json, и он отлично работает, по какой-то причине он не будет правильно передавать JSON
. Я также попытался использовать JSON
stringify и установить тип содержимого, когда это произойдет, я получаю функцию успеха AJAX
, но скрипт php, похоже, не выполняется.
echo your variable @rhysclay –
Вы имеете в виду echo $ product_data? – rhysclay
Что вы хотите передать в JSON –