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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  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 2,139 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.615



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
Añadir un producto al carrito de la compra
Bases de Datos
WiseHidden 4 3,554 Último mensaje 24 Enero 2012, 02:23 am
por Shell Root
Problema con Codeigniter... « 1 2 »
PHP
01munrra 13 8,179 Último mensaje 4 Marzo 2013, 23:04 pm
por 01munrra
Problema en CodeIgniter
Desarrollo Web
Shell Root 2 2,276 Último mensaje 21 Marzo 2013, 19:40 pm
por 01munrra
Ayuda listview añadir y eliminar items en espesifico
Programación Visual Basic
Brian1511 1 2,187 Ú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 4,661 Último mensaje 25 Mayo 2017, 17:30 pm
por dato000
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines