@Mehannik

Не могу разобраться с encodeURIComponent?

Сохраняю данные в массив в local storage в виде
2-1: {goodname: "Limelight", goodprice: "320", goodimg: "image/tovar3.jpg", count: 1}
function _getCartData() {
        $.each(_checkLS(), function(id) {
            cartData[id] = encodeURIComponent(cartData[id]);
        });
        return cartData;
    }

Проделываю с массивом такую манипуляцию с помощью encodeURIComponent
массив приобретает вид
{"2-1":"%5Bobject%20Object%5D"}
потом
cartData = _getCartData();
        orderData = formData + '&cart=' + JSON.stringify(cartData);
        console.log(orderData);
        ui.$orderBtn.attr('disabled', 'disabled').text('Идет отправка заказа...');
        $.ajax({
            url: 'scripts/order.php',
            data: orderData,
            type: 'POST',
            cache: false, // на всякий случай отказываемся от кэширования
            dataType: 'json',

далее пытаюсь декодировать строку через stripslashes
function getData() {
    return array(
        'surname' => getParam('surname'),
        'name' => getParam('name'),
        'email' => getParam('email'),
        'phone' => getParam('phone'),
        'coment' => getParam('comment'),
        'cart' => isset($_POST['cart']) ? stripslashes($_POST['cart']) : ''
    );
}
......
            foreach($cart as $id =>$value) {
                echo sprintf(
                    "<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>",
                    $id,
                    $cart[$id]['goodname'],
                    $cart[$id]['goodprice'],
                    $cart[$id]['count']
                );
            }

Но на выходе получаю
Warning: Illegal string offset 'goodname'
Warning: Illegal string offset 'goodprice'
Warning: Illegal string offset 'count'
ID Название Цена Количество
2-1 [ [ [
в чём моя ошибка?
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
DevMan
@DevMan Куратор тега PHP
в том, что вы обрабатываете объект при помощи функции encodeURIComponent, которая обрабатывает только строки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы