Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dostęp do stringa w tablicy (obiekt)
Forum PHP.pl > Forum > PHP
DeeL
Witam,

Poniżej krótki kod dla wyświetlenie elementów obiektu Jcart.
  1. <?php
  2. echo '<pre>';
  3. $koszyk=$_SESSION['jcart'];
  4. var_dump($koszyk);
  5. echo '<pre>';
  6. ?>


A oto wynik wyświetlenia:

object(Jcart)#1 (8) {
["config"]=>
array(12) {
["jcartPath"]=>
string(6) "jcart/"
["checkoutPath"]=>
string(14) "./checkout.php"
["item"]=>
array(7) {
["id"]=>
string(10) "my-item-id"
["name"]=>
string(12) "my-item-name"
["price"]=>
string(13) "my-item-price"
["qty"]=>
string(11) "my-item-qty"
["url"]=>
string(11) "my-item-url"
["obrazek"]=>
string(15) "my-item-obrazek"
["add"]=>
string(13) "my-add-button"
}
["paypal"]=>
array(5) {
["id"]=>
string(38) "seller_1282188508_biz@conceptlogic.com"
["https"]=>
bool(true)
["sandbox"]=>
bool(false)
["returnUrl"]=>
string(0) ""
["notifyUrl"]=>
string(0) ""
}
["currencyCode"]=>
string(3) "PLN"
["csrfToken"]=>
bool(false)
["text"]=>
array(14) {
["cartTitle"]=>
string(12) "Twój koszyk"
["singleItem"]=>
string(7) "Produkt"
["multipleItems"]=>
string(10) "Produktów"
["subtotal"]=>
string(4) "Suma"
["update"]=>
string(8) "Przelicz"
["checkout"]=>
string(3) "Kup"
["checkoutPaypal"]=>
string(28) "Kup za pośrednictwem PayPal"
["removeLink"]=>
string(5) "Usuń"
["emptyButton"]=>
string(9) "Wyczyść"
["emptyMessage"]=>
string(23) "Twój koszyk jest pusty"
["itemAdded"]=>
string(6) "Dodano"
["priceError"]=>
string(25) "Niewłaściwy format ceny"
["quantityError"]=>
string(38) "Wartość musi być liczbą całowitą"
["checkoutError"]=>
string(41) "Wystąpiły problemy z Twoim zamówieniem"
}
["button"]=>
array(4) {
["checkout"]=>
string(0) ""
["paypal"]=>
string(0) ""
["update"]=>
string(0) ""
["empty"]=>
string(0) ""
}
["tooltip"]=>
bool(true)
["decimalQtys"]=>
bool(false)
["decimalPlaces"]=>
int(1)
["priceFormat"]=>
array(3) {
["decimals"]=>
int(2)
["dec_point"]=>
string(1) "."
["thousands_sep"]=>
string(1) ","
}
}
["items:private"]=>
array(2) {
[0]=>
string(1) "2"
[1]=>
string(1) "1"
}
["names:private"]=>
array(2) {
[2]=>
string(9) "Bułeczka"
[1]=>
string(7) "Chlebek"
}
["prices:private"]=>
array(2) {
[2]=>
string(4) "0.50"
[1]=>
string(4) "1.00"
}
["qtys:private"]=>
array(2) {
[2]=>
string(1) "2"
[1]=>
string(1) "3"
}
["urls:private"]=>
array(2) {
[2]=>
string(25) "jcart/images/buleczka.jpg"
[1]=>
string(0) ""
}
["subtotal:private"]=>
float(4)
["itemCount:private"]=>
int(5)
}

Pytanie:
Jak wyciągnąć element "Bułeczka" z tego obiektu. Niestety nie potrafię skonstruować odpowiedniego odwołania.
aras785
Witam. Sprawdź:
  1. print_r($obiekt->['names:private']);
//wyslij wynik

i
  1. print_r($obiekt->{'names:private'});
//wyslij wynik
Pawel_W
names:private oznacza, żę pole names jest private, tzn. można się do niego odwołać jedynie wewnątrz klasy - poszukaj w dokumentacji, na pewno są do tego jakieś settery/gettery
aras785
http://codepad.org/NhsonclE
Pawel_W
Twój kod w żaden sposób nie oddaje tego o czym napisałem wyżej... http://codepad.org/fVlekTpe

zauważ, że u Ciebie robisz print_r($obj['two']) podczas gdy 'two' jest elementem tablicy o nazwie $container, a nie obiektu
aras785
Masz rację. Mój błąd. A tak: http://codepad.org/RFqy4mmW ?
DeeL
Cytat(aras785 @ 2.01.2013, 09:43:24 ) *
Witam. Sprawdź:
  1. print_r($obiekt->['names:private']);
//wyslij wynik

i
  1. print_r($obiekt->{'names:private'});
//wyslij wynik


Po wywołaniu:
  1. print_r($koszyk->['names:private']);
  2. print_r($koszyk->{'names:private'});


Wynik był taki:

Parse error: syntax error, unexpected '[', expecting T_STRING or T_VARIABLE or '{' or '$' in /virtual/twojawitryna.cba.pl/pages/oferta/checkout.php on line 178




Cytat(aras785 @ 2.01.2013, 15:08:38 ) *
Masz rację. Mój błąd. A tak: http://codepad.org/RFqy4mmW ?


  1. $d = array_map(NULL,get_object_vars($koszyk));
  2. print_r($d);


Po wywołaniu wyświetliło:
Array
(
[config] => Array
(
[jcartPath] => jcart/
[checkoutPath] => ./checkout.php
[item] => Array
(
[id] => my-item-id
[name] => my-item-name
[price] => my-item-price
[qty] => my-item-qty
[url] => my-item-url
[obrazek] => my-item-obrazek
[add] => my-add-button
)

[paypal] => Array
(
[id] => seller_1282188508_biz@conceptlogic.com
[https] => 1
[sandbox] =>
[returnUrl] =>
[notifyUrl] =>
)

[currencyCode] => PLN
[csrfToken] =>
[text] => Array
(
[cartTitle] => Twój koszyk
[singleItem] => Produkt
[multipleItems] => Produktów
[subtotal] => Suma
[update] => Przelicz
[checkout] => Kup
[checkoutPaypal] => Kup za pośrednictwem PayPal
[removeLink] => Usuń
[emptyButton] => Wyczyść
[emptyMessage] => Twój koszyk jest pusty
[itemAdded] => Dodano
[priceError] => Niewłaściwy format ceny
[quantityError] => Wartość musi być liczbą całowitą
[checkoutError] => Wystąpiły problemy z Twoim zamówieniem
)

[button] => Array
(
[checkout] =>
[paypal] =>
[update] =>
[empty] =>
)

[tooltip] => 1
[decimalQtys] =>
[decimalPlaces] => 1
[priceFormat] => Array
(
[decimals] => 2
[dec_point] => .
[thousands_sep] => ,
)

)

)



Niestety nie ma tutaj tablic private.

Chętnie załącze plik z kodem, ale niestety nie mogę umieścić linku.
elmariusso
Miałem kiedyś ten sam problem z innym koszykiem zakupów, może pomocny okaże się link
conceptlogic.com/jcart/install.php
Być może ktoś korzystał już z tego sklepu i wie jak to zrobić bo problem pozostaje nierozwiązany.
aras785
To najlepiej byłoby dopisać metode w tej klasie, którą wywołujesz.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.