Foros del Web » Programando para Internet » Javascript »

Lista de productos dinamica

Estas en el tema de Lista de productos dinamica en el foro de Javascript en Foros del Web. Hola gente como va? Tengo una lista de productos que se actualiza dependiendo de un select. Esto lo hago recogiendo los datos del select en ...
  #1 (permalink)  
Antiguo 06/05/2014, 07:25
 
Fecha de Ingreso: marzo-2010
Mensajes: 28
Antigüedad: 14 años, 1 mes
Puntos: 0
Lista de productos dinamica

Hola gente como va? Tengo una lista de productos que se actualiza dependiendo de un select. Esto lo hago recogiendo los datos del select en tiempo real y con un archivo php cargo los datos y dsp con ajax los devuelvo.

El problema que tengo es que la lista de productos se genera con un foreach y el codigo funciona bien pero solo con el primer producto, con los demas no funciona. ¿Como podria hacer?


Si selecciono el segundo, tercero o cuarto se actualiza el primero nomas, en vez de actualizarse donde corresponde.

Dejo los codigos que use:
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function showUser(str)
  3. {
  4. if (str=="")
  5.   {
  6.   document.getElementById("cargarproducto").innerHTML="";
  7.   return;
  8.   }
  9. if (window.XMLHttpRequest)
  10.   {// code for IE7+, Firefox, Chrome, Opera, Safari
  11.   xmlhttp=new XMLHttpRequest();
  12.   }
  13. else
  14.   {// code for IE6, IE5
  15.   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  16.   }
  17. xmlhttp.onreadystatechange=function()
  18.   {
  19.   if (xmlhttp.readyState==4 && xmlhttp.status==200)
  20.     {
  21.     document.getElementById("cargarproducto").innerHTML=xmlhttp.responseText;
  22.     }
  23.   }
  24. xmlhttp.open("GET","catalog/model/catalog/obtendatos.php?q="+str,true);
  25. xmlhttp.send();
  26. }
  27. </script>
Código HTML:
Ver original
  1. <?php
  2.                         $counter=0;
  3.                         foreach ($products as $product) {
  4.                             if ($counter == 0 ) $xclass = 'alpha';
  5.                             else if (($counter+12) % 12 == 0 ) $xclass = 'alpha4 alpha3';
  6.                             else if (($counter+4) % 4 == 0 ) $xclass = 'alpha4';
  7.                             else if (($counter+3) % 3 == 0 ) $xclass = 'alpha3';
  8.                             else $xclass = '';
  9.                             if (($counter+2) % 2 == 0 ) $xclass .= ' odd';
  10.                         ?>
  11.                         <div class="grid-box <?php echo $xclass; ?>">
  12.                             <div class="inner">
  13.                                 <?php if ($product['price'] && $product['special']) { ?>
  14.                                 <?php } ?>
  15.                                 <?php if ($product['thumb']) { ?>
  16.                                     <div class="image">
  17.                                         <a href="<?php echo $product['href']; ?>">
  18.                                         <img src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a>
  19.                                     </div>
  20.                                 <?php } ?>
  21.                                 <div class="name">
  22.                                     <a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a><br />
  23.    
  24.             <form id="form1" name="form1" method="GET" action="">
  25.                  <select name="users" onchange="showUser(this.value)">
  26.                     <option value="aaaaa">Seleccione cantidad</option>
  27.              <?php  $eliminar = $product['model'];
  28.                 $terms = substr($eliminar, 0, 9);
  29.                 $modelo_query = $this->db->query("SELECT * FROM product WHERE model LIKE '%" . $terms . "%'");
  30.                 $modelos = array();
  31.                     if ($modelo_query->num_rows > 0) {
  32.                             foreach ($modelo_query->rows as $result) {
  33.                             $modelos[] = array('modelo'      => $result['model'],);?>
  34.                     <option value="<?php echo $result['model']; ?>"><?php echo $result['model']; ?></option>
  35.                                     <?php   }  
  36.                             } ?>
  37.                 </select>
  38.             </form>
  39.                            
  40.                                 </div>
  41.                                 <div class="description"><?php echo $product['description']; ?></div>
  42.                             <div class="cart">
  43.                                 <div id="cargarproducto"></div>
  44.                             </div> 
  45.                             </div>
  46.                         </div>
  47.                         <?php   } ?>

obtendatos.php
Código PHP:
Ver original
  1. <?php
  2. require_once('../../../config.php');
  3. require_once(DIR_SYSTEM . 'startup.php');
  4. $db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
  5. $q=$_GET["q"];
  6. $GroupId = 44;
  7. $resultado = mysql_query("SELECT * FROM product WHERE model LIKE '%" . $q . "%'");
  8. while($row = mysql_fetch_array($resultado))
  9.   {
  10.  $special_query = mysql_query("SELECT * FROM product_special WHERE product_id LIKE '%" . $row['product_id'] . "%' AND customer_group_id LIKE '%" . $GroupId . "%'");
  11.  $row_s = mysql_fetch_array($special_query);
  12. if ($row['quantity'] > 0) {
  13. $disponible = 7;
  14. $stock_query = mysql_query("SELECT * FROM stock_status WHERE stock_status_id LIKE '%" . $disponible . "%'");
  15. $stock = mysql_fetch_array($stock_query);
  16. $rstock = $stock['name'];
  17. }
  18. if ($row['price']) {
  19. echo '<div class="price">';    
  20.  if (!$row_s['price']) {
  21. echo '<span>';
  22. echo 'Precio: ';
  23. echo '</span>';
  24. echo $row['price'];
  25. } else {
  26. echo '<span>';
  27. echo 'Precio: ';
  28. echo '</span>';
  29. echo '<span class="price-new">';
  30. echo $row_s['price'];
  31. echo '</span>';
  32. }
  33. echo '</div>';
  34.  }
  35. echo '<div class="actions">';
  36. echo '<div class="cart">';
  37.  if ($row['price']) {
  38. echo $rstock;
  39. echo '<br>';
  40.  }
  41.  
  42.  echo 'Cantidad: ';
  43.  echo '<input type="text" name="quantity" value="" class="input-mini" id="quantity-'.$row['product_id'].'">';
  44.  if ($rstock !== "Sin disponibilidad") {
  45. echo '<br><input id="boton" name="boton" type="button" value="Añadir a la cesta" onclick="addQtyToCart(';
  46. echo "'";
  47. echo $row['product_id'];
  48. echo "'";
  49. echo ');" class="btn btn-cart btn-small" />';
  50.  }
  51. echo '</div>';
  52. echo '</div>';
  53. }
  54. ?>

Etiquetas: php+ajax
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 22:49.