elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Añadir varios items al carrito codeigniter
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Añadir varios items al carrito codeigniter  (Leído 1,289 veces)
marko1985

Desconectado Desconectado

Mensajes: 46


Ver Perfil
Añadir varios items al carrito codeigniter
« en: 16 Junio 2014, 20:01 pm »

A ver os explico:

Tengo un jquery que coge los datos de un formulario en el que aparecen las variedades de sabor de un producto.
Imaginaos
Fanta -> añadir al carrito. Al darle al boton se abre un dialog con el formulario para que agregues la cantidad de cada variedad. el código es este.

 
Código
  1. ('.get_flavors_cart').click(function(){
  2.    product = $(this).attr('rel');
  3.    $('.dialog').dialog("open");
  4.   $.get('http://distribucion.nutrifrog.com/products/box_flavors_helper/'+product, function(data){
  5.        $('.dialog').html(data);
  6.        $('.add_items').click(function(){
  7.                    //alert('Pulsaste en añadir carrito');
  8.                    var flavorValues = new Array();
  9.                    $('input[type="number"]').each(function(){
  10.                       index = $(this).attr("rel");
  11.                       value = $(this).val();
  12.                       flavorValues[index] = value;
  13.                    });
  14.                    data_flavors = JSON.stringify(flavorValues);
  15.                    $.post('http://distribucion.nutrifrog.com/products/add_cart_item',{id:product, cart_items:data_flavors}, function(data){
  16.                       $('.dialog').html(data);
  17.                    });
  18.                });
  19.  
  20.  
  21. });

En PHP trabajo con el framework Codeigniter  y recogo los datos JSON y hago un foreach para agregar al carrito cada item.

Código
  1. public function add_cart_item(){    
  2.    $id = $this->input->post('id');                
  3. $values = json_decode($this->input->post('cart_items'));
  4.        $msg = '';
  5.        $valores = count($values);
  6.        $format= $this->products_model->format_name($this->products_model->get_product_property($id, 'id_format'));
  7.        $price = $this->products_model->get_product_property($id, 'pvd');
  8.        $weight                 = $this->products_model->get_product_property($id, 'weight');
  9.        $img                    = $this->products_model->get_product_property($id, 'img_path');
  10.        $name                   = $this->products_model->get_product_property($id, 'name');
  11.        $quantity               = $this->products_model->get_product_property($id, 'quantity');
  12.        foreach($values as $flavor => $cantidad){
  13.                if(!is_null($cantidad)){                
  14.                    $cart_data = array(
  15.                       'id'         => strtoupper(random_string('alnum', 8)),
  16.                       'qty'        => $cantidad,
  17.                       'price'      => $price,
  18.                       'name'       => $name,
  19.                       'product_id' => $id,
  20.                       'img'        => $img,
  21.                       'format'     => $format,                  
  22.                       'weight'     => $weight,
  23.                       'quantity'   => $quantity,
  24.                       'flavor'     => $flavor
  25.                    );  
  26.                    if($this->cart->insert($cart_data)){
  27.                        $msg .="Insertadas $quantity_fl unidades de sabor $flavor<br />";
  28.  
  29.                    }  
  30.                    else {
  31.                        echo "Error: no se ha insertado el sabor $flavor";
  32.                    }                                  
  33.                }    
  34.        }
  35.  
  36.    }

Si el producto solo tiene una variedad no hay problema pero cuándo hay varios sabores, no carga en el carrito nada. Ya le he dado 10000 vueltas, pero no hay manera.

¿Alguna idea?

Gracias de antemano.


« Última modificación: 16 Junio 2014, 20:03 pm por marko1985 » En línea

EFEX


Desconectado Desconectado

Mensajes: 1.171


"Dinero Facil"


Ver Perfil WWW
Re: Añadir varios items al carrito codeigniter
« Respuesta #1 en: 18 Junio 2014, 05:10 am »

Utiliza la consola segun el navegador que uses y fijate los valores que envia..

Una cosa que veo es que estas definiendo ese array(flavorValues) y tratas de definir un index en js no se puede, definilo como objeto.

Código
  1. var flavorValues = new Object();
  2. //O mas simple
  3. var flavorValues = {};


En línea

JorgeEMX
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.613



Ver Perfil WWW
Re: Añadir varios items al carrito codeigniter
« Respuesta #2 en: 19 Junio 2014, 04:36 am »

Imprime éste valor en tu php, en los dos escenarios (con una variedad y con 10,000):


Código
  1. var_dump($this->input->post())

Quizá entonces te podremos ayudar en algo.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
IDE para CodeIgniter?
PHP
[u]nsigned 0 3,266 Último mensaje 16 Diciembre 2010, 21:55 pm
por [u]nsigned
IDE para CodeIgniter?
Desarrollo Web
[u]nsigned 1 3,903 Último mensaje 18 Abril 2011, 17:43 pm
por Nakp
Añadir un producto al carrito de la compra
Bases de Datos
WiseHidden 4 2,664 Último mensaje 24 Enero 2012, 02:23 am
por Shell Root
Ayuda listview añadir y eliminar items en espesifico
Programación Visual Basic
Brian1511 1 1,030 Último mensaje 7 Julio 2014, 16:52 pm
por plexo
Añadir items a un array sin usar List, ni crear nuevos arrays en C#
.NET (C#, VB.NET, ASP)
RevolucionVegana 7 2,077 Último mensaje 25 Mayo 2017, 17:30 pm
por dato000
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines