Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/12/2011, 07:37
Avatar de DrFaust
DrFaust
 
Fecha de Ingreso: septiembre-2011
Ubicación: Buenos Aires
Mensajes: 308
Antigüedad: 12 años, 8 meses
Puntos: 87
Respuesta: Como generar una tabla HTML al elegir disntintas opciones de select.

Es innecesario hacerlo en AJAX. Te hago un ejemplo rápido.

Primero creás un array multidimensional en JavaScript con los países y las IDs de los productos. Este código lo generás con PHP utilizando bucles. Asumiendo que tenés dos países y tres productos con las IDs 11, 12 y 13:

Código Javascript:
Ver original
  1. var precio = new Array();
  2.  
  3. precio["Argentina"][11] = 10.5;
  4. precio["Argentina"][12] = 11;
  5. precio["Argentina"][13] = 12.5;
  6. precio["Brasil"][11] = 7;
  7. precio["Brasil"][12] = 8;
  8. precio["Brasil"][13] = 9;

El código PHP se vería más o menos así:

Código PHP:
Ver original
  1. echo "var precio = new Array();";
  2.  
  3. $sql = mysql_query("SELECT * FROM paises;");
  4.  
  5. while ($row = mysql_fetch_assoc($sql)) {
  6.  
  7.     $id_pais = $row["id"];
  8.     $pais = $row["pais"];
  9.  
  10.     $sql2 = mysql_query("SELECT * FROM productos WHERE id_pais = $id_pais");
  11.  
  12.     while ($row2 = mysql_fetch_assoc($sql2)) {
  13.  
  14.         $id_articulo = $row2["id"];
  15.         $precio = $row2["precio"];
  16.  
  17.         echo "precio['$pais'][$id_articulo] = $precio;";
  18.  
  19.     }
  20.  
  21. }

Luego creás el esqueleto de la tabla, de nuevo utilizando bucles PHP.

Código HTML:
Ver original
  1.     <tr>
  2.         <td id="nombre-11">Caja azul</td>
  3.         <td id="nombre-12">Caja verde</td>
  4.         <td id="nombre-13">Caja roja</td>
  5.     </tr>
  6.     <tr>
  7.         <td id="precio-11"></td>
  8.         <td id="precio-12"></td>
  9.         <td id="precio-13"></td>
  10.     </tr>

Por último armás el código que rellena la tabla. Para este ejemplo voy a usar jQuery:

Código Javascript:
Ver original
  1. $("#select-pais, #select-cantidad").change(function() {
  2.     var pais = $("#select-pais").val();
  3.     var cantidad = $("#select-cantidad").val();
  4.     rellenar(pais, cantidad);
  5. });
  6.  
  7. function rellenar(pais, cantidad) {
  8.     for (i in precio[pais]) {
  9.         $("#precio-" + i).html(precio[pais][i] * cantidad);
  10.     }
  11. }
__________________
Desarrollador web profesional

Última edición por DrFaust; 01/12/2011 a las 07:42