Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/05/2014, 07:25
pabliich
 
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. ?>