Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Problema al comparar datos

Estas en el tema de Problema al comparar datos en el foro de Javascript en Foros del Web. Buenas gente! Les escribo casi rendida con un problema que tengo a ver si alguien me puede dar un mano. El tema es el siguiente: ...
  #1 (permalink)  
Antiguo 25/03/2013, 10:33
DmD
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires, Argentina
Mensajes: 73
Antigüedad: 15 años, 7 meses
Puntos: 1
Problema al comparar datos

Buenas gente!
Les escribo casi rendida con un problema que tengo a ver si alguien me puede dar un mano. El tema es el siguiente: Es una web de ropa con un carrito de compras, el tema es que tengo que validar unos datos con una bd antes que se agregue el producto al carrito y no estoy pudiendo.

Tengo éste código de javascript que me toma el valor de datos que seleccionó el usuario para la compra:

Código:
var compruebo_color=document.formulario_prendas.colores;
var valor_color = compruebo_color.options[compruebo_color.selectedIndex].text;

var compruebo_talles=document.formulario_prendas.talles;
var valor_talles = compruebo_talles.options[compruebo_talles.selectedIndex].text;

var valor_cantidad = formulario_prendas.elements["paso_cantidad"].value;
Y los tengo que comparar con la información del producto cargada en una base de datos mysql pero no se cómo hacer. Para encontrar los datos de arriba en la tabla de la base de datos tendría que localizar la columna del color que seleccionaron y ahí el talle y la cantidad.
Pero no se cómo hacer porque, tendria que recorrer la información de la base de datos con algún array?, y tampoco puedo comprar éstos datos con javascript, entonces que hago?.

Espero que alguien sepa porque me estoy volviendo loca!!
Saludos,
Daniela.
  #2 (permalink)  
Antiguo 25/03/2013, 12:18
Avatar de calambrenet  
Fecha de Ingreso: julio-2010
Ubicación: Jaén
Mensajes: 162
Antigüedad: 13 años, 9 meses
Puntos: 18
Respuesta: Problema al comparar datos

Eso tienes que hacerlo en la parte del servidor, bien con php, python, etc. Desde el lado cliente no tienes acceso a la base de datos a no ser que crees una interfaz ajax y aún así necesitas el código en el lado del servidor. Búscate un buen framework como symfony o django para hacer eso.
__________________
Miembro de CODEFRIENDS /*freelance developer*/
GigaOlive -compra aceite de oliva desde tu móvil-
  #3 (permalink)  
Antiguo 25/03/2013, 12:33
DmD
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires, Argentina
Mensajes: 73
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Problema al comparar datos

Si, imaginaba que con php pero por ejemplo si tengo 10 camisas en color celeste. Cómo hago para buscar en la tabla de la base de datos el campo que sea celeste?. Tengo que pasar la bd a un array y recorrerlo hasta que encuentre el valor?.

Y una vez encuentre el valor, no hay manera de comparar ese dato con lo que seleccionó el usuario en un select?.

Gracias =)
Saludos
  #4 (permalink)  
Antiguo 25/03/2013, 12:46
Avatar de calambrenet  
Fecha de Ingreso: julio-2010
Ubicación: Jaén
Mensajes: 162
Antigüedad: 13 años, 9 meses
Puntos: 18
Respuesta: Problema al comparar datos

Es un poco complicado explicarlo sin saber cómo lo harías en el servidor pero usando php y mysql se supone que tendrías una tabla de productos con la columna color (entre otras) así que para saber si te quedan camisas del color celeste usarías la consulta:

Código MySQL:
Ver original
  1. select count(*) from product where color like 'celeste';
Y te devolvería la cantidad.

Si lo que quieres es una lista de productos de color celeste:
Código MySQL:
Ver original
  1. select nombre, descripcion, tipo, estado, talla, from producto where color like 'celeste';
y te devuelve una tabla o array con los productos con ese color

Y todo este dentro de php usando querys porque esto es solo mysql. Si usaras un ORM como doctrine es un poco más sencillo.
Te animo a que te estudies un buen framework.
__________________
Miembro de CODEFRIENDS /*freelance developer*/
GigaOlive -compra aceite de oliva desde tu móvil-
  #5 (permalink)  
Antiguo 25/03/2013, 12:52
DmD
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires, Argentina
Mensajes: 73
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Problema al comparar datos

El tema es que no puedo cambiar el framework ahora porque el sistema se terminó el año pasado y ahora el cliente quiere cambiar la forma del control de stock X_x. Entonces si cambio de framework ahora tendría que hacer todo de nuevo, un trabajo de meses!.

Con las consultas así lo podría adaptar, pero poner el valor de una variable de javascript dentro de la consulta sql es...imposible, no?.

Ejemplo:
Código:
SELECT count(*) FROM product WHERE color LIKE <---variable jasvascript --->;

Gracias!
  #6 (permalink)  
Antiguo 25/03/2013, 13:09
Avatar de calambrenet  
Fecha de Ingreso: julio-2010
Ubicación: Jaén
Mensajes: 162
Antigüedad: 13 años, 9 meses
Puntos: 18
Respuesta: Problema al comparar datos

No, una cosa es el lado cliente y otra es el lado servidor. Se pueden intercambiar datos, bien de forma 'de toda la vida' con php -por ejemplo- de forma que si tienes en una variable el número de camisetas lo puedes meter en una variable de javascript tal que así;
Código Javascript:
Ver original
  1. <script>
  2. var n_camisetas= <?php echo $n_camisetas ?>
  3. </script>

Pero para eso a la hora de cargar la página tienes que tener en la variable $n_camisetas los datos ya cargados.
Si lo quieres hacer de forma dinámica, es decir, obtener el número de camisetas una vez que la página ya se ha cargado se puede hacer vía ajax con jquery (por ejemplo):

Código Javascript:
Ver original
  1. <script>
  2. $.ajax({
  3.         url: 'url-para-obtener-datos.php?color=celeste',
  4.         dataType: 'json',
  5.         success: (function(data) {
  6.             //en data tenemos los datos devueltos por la llamada, en este caso en formato json
  7.             //y, en este caso, data.n_camisetas
  8.            console.log('n_camisetas: '+data.n_camisetas);
  9.         }
  10. });
  11. </script>

Ahora habría que hacer la llamada en el servidor, más o menos el fichero sería así:
Código PHP:
Ver original
  1. <?php
  2.     $color = $_GET['color'];
  3.  
  4.     $c = array(
  5.         'value' => 'OK',
  6.     );
  7.        
  8.     $database = new mysqli(
  9.         $host,
  10.         $user,
  11.         $password_db,
  12.         $database
  13.     );
  14.  
  15.     if($database->errno !=0){
  16.         $c = array( 'value' =>  'ERROR', 'msg' => 'Error al conectar a la base de datos');
  17.         return $c;
  18.     }
  19.    
  20.     $q = mysqli_query($database, "select count(*) from productos where color like '".$color."'");            
  21.     if($q==FALSE){
  22.         $c = array( 'value' =>  'ERROR', 'msg' => 'Error al realizar la consulta');
  23.         return $c;
  24.     }
  25.     $temp = mysqli_fetch_row($r);
  26.  
  27.     $c['data']=array('n_camisetas' => $temp[0]);
  28.    
  29.     echo json_encode($c);

Este ejemplo sería para obtener el número de camisetas pero sería fácilmente adaptable para obtener más información. Es un poco complicado, aunque lo he simplificado mucho, pero puedes tener una idea.
__________________
Miembro de CODEFRIENDS /*freelance developer*/
GigaOlive -compra aceite de oliva desde tu móvil-

Última edición por calambrenet; 25/03/2013 a las 13:15
  #7 (permalink)  
Antiguo 25/03/2013, 13:25
DmD
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires, Argentina
Mensajes: 73
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Problema al comparar datos

Buenísimo!, eso es lo que necesito!!. Te hago la última consulta:

En el código que pusiste de ajax puedo ponerle la variable de javascript que me almacena el color?, porque al salir de un select no se si va a ser celeste, sino el color que elija el usuario:

Código:
    
<script>
    $.ajax({
            url: 'url-para-obtener-datos.php?color=variablejavascript',
            dataType: 'json',
            success: (function(data) {
                //en data tenemos los datos devueltos por la llamada, en este caso en formato json
                //y, en este caso, data.n_camisetas
               console.log('n_camisetas: '+data.n_camisetas);
            }
    });
</script>
Muchísimas gracias por todo, me voy a poner a hacerlo, con esto seguro lo puedo terminar!.

Gracias
Saludos,
Daniela.
  #8 (permalink)  
Antiguo 25/03/2013, 13:28
Avatar de calambrenet  
Fecha de Ingreso: julio-2010
Ubicación: Jaén
Mensajes: 162
Antigüedad: 13 años, 9 meses
Puntos: 18
Respuesta: Problema al comparar datos

Claro, puedes usar una variable:
'url-para-obtener-datos.php?color='+variablejavascript,

o el valor de un select usando jquery:
'url-para-obtener-datos.php?color='+$("select #colores").val(),
__________________
Miembro de CODEFRIENDS /*freelance developer*/
GigaOlive -compra aceite de oliva desde tu móvil-
  #9 (permalink)  
Antiguo 25/03/2013, 13:40
DmD
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires, Argentina
Mensajes: 73
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Problema al comparar datos

Buenísimo, muchísimas gracias por todo!, en serio. Ahora me voy a poner a hacerlo.

Etiquetas: mysql, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:11.