Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CodeIgniter] Problem z Cart.class
Forum PHP.pl > Forum > PHP > Frameworki
jacek.s
Witam!

Potrzebuję pomocy z koszykiem w CI, korzystam ze standardowego koszyka dostarczanego prze CI (Cart.class).
Problem polega na tym że mogę dodać maksymalnie 2 produkty do koszyka :/

mój kontroler :
  1. function add($id)
  2. {
  3. $data = $this->products_model->get_product($id);
  4. $product = array(
  5. 'id' => $data->id,
  6. 'qty' => 1,
  7. 'price' => $data->price,
  8. 'name' => $data->title,
  9. 'code' => $data->code
  10. );
  11. $this->cart->insert($product);
  12. redirect(base_url().'basket.html');
  13. }


Dane które dostaje napewno są ok (sprawdziłem) ,
po dodaniu trzeciego produktu 0 reakcji :/
$this->cart->total_items(); updarcie pokazuje 2.
Jeśli ktoś miał podobne doświadczenia z CI proszę o rade.

Pozdrawiam

Znalazłem winowajcę , nie respektuje polskich znaków w tytule produktu.
Kodowanie w bazie (MySQL) i w Ci mam ustawione na UTF-8.

To normalne ?
jarexx
Kiedyś miałem też problem z ogonkami w CI.
Baza miała kodowanie UTF-8, aplikacja w CI również, a wyświetlało "krzaki".
U mnie pomogła edycja pliku database.php z folderu config.
Zamiast UTF-8 wpisałem:
  1. $db['default']['char_set'] = "latin1";
  2. $db['default']['dbcollat'] = "latin1_swedish_ci";

Możesz spróbować czy to rozwiąże problem.
szok
Klasa cart w CI nie łapie polskich znaków w bibliotece jest wyrażenie regularne:

var $product_name_rules = '\.\:\-_ a-z0-9'; // alpha-numeric, dashes, underscores, colons or periods

thek
to niech zamieni
var $product_name_rules = '\.\:\-_ a-z0-9';
na
var $product_name_rules = '\.\:\-_ a-ż0-9';

takie wyrażenie regularne, jeśli plik jest w utf-8, już powinno łykać polskie znaki smile.gif
zzart
możesz też stworzyć nową kalse w application/librieries

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class MY_Cart extends CI_Cart {
function __construct() {
parent::CI_Cart();
// THIS IS FOR POLISH CHARACTERS
$this->product_name_rules = '\,\(\)\"\'\.\:\-_ a-żA-Ż0-9';
}
}

dodać ją do autoload / config
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.