Foros del Web » Programando para Internet » Javascript »

Problema para habilitar select con checkbox desde PHP

Estas en el tema de Problema para habilitar select con checkbox desde PHP en el foro de Javascript en Foros del Web. que tal a todos, tengo un problema para habilitar un select desde un checkbox, tengo una bd donde incluyo una lista de productos, tengo la ...
  #1 (permalink)  
Antiguo 24/04/2010, 17:19
 
Fecha de Ingreso: agosto-2009
Mensajes: 59
Antigüedad: 14 años, 8 meses
Puntos: 0
Problema para habilitar select con checkbox desde PHP

que tal a todos, tengo un problema para habilitar un select desde un checkbox, tengo una bd donde incluyo una lista de productos, tengo la tabla productos que inluye los campos:

codigo
producto
precio
cantidad
existencia
tipo
caracter

ok el problema surge con lo siguiente, hago la consulta a la bd y a traves de un while genero una tabla con los productos, cada producto tiene al lado un checkbox que indica que se esta pidiendo este producto y al chequearlo deberia habiliar el select para seleccionar la cantidad a comprar, cuando uso el javascript para que habilite o deshabilite el select solo me sirve con el ultimo producto de la lista, los demas no hacen nada, estoy algo preocupado porque me lo estan pidiendo para la otra semana y no se porque no funciona. Les dejo el codigo


Código PHP:
<?php
                    
require('conexion.php');
$csql "SELECT * FROM productos where existencia='SI' order by codigo ASC";
$ress mysql_query($csql,$conn);                    
if (
mysql_num_rows($ress)!=0){

while(
$row mysql_fetch_array($ress)) {    
$codigo $row["codigo"];
$producto $row["producto"];
$precio $row["precio"];
$cantidad $row["cantidad"];

echo 
"<script>
function deshabilita()
{
    if(document.getElementById('pedido"
.$codigo."').checked)
    {
        document.getElementById('cantidad"
.$codigo."').disabled=false;
    }
    else
    {
        document.getElementById('cantidad"
.$codigo."').disabled=true;
    }
}
</script>"
;


$c=$c+1;
if(
$c%2==0//si el residuo es 0 la pintamos de un color
$bgc='#DFDFDF';
else 
//sino la pintamos de otro
$bgc='#EEEEEE'

echo
"<tr bgcolor=$bgc height=20 class=Estilo5><td><center>$codigo</td><td><center>$producto</td><td><center><input type='checkbox' name='pedido' id='pedido".$codigo."' value='".$precio."' onClick='deshabilita();'></td><td><center><select id='cantidad".$codigo."' name='cantidad' disabled><option selected='selected'>1</option><option value='2'>2</option><option value='3'>3</option><option value='4'>4</option><option value='5'>5</option></select></td><td><center>$precio</td></tr>";



 
 } }
 
?>
Les agradezco de antemano toda la ayuda que me puedan prestar
  #2 (permalink)  
Antiguo 24/04/2010, 18:34
 
Fecha de Ingreso: agosto-2009
Mensajes: 59
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema para habilitar select con checkbox desde PHP

nadie? por favor mas que sea una idea, porque para sumar los valores del checkbox funciona de maravilla, toma los valores que son pero al hacerlo como digo no funciona.
  #3 (permalink)  
Antiguo 24/04/2010, 19:28
 
Fecha de Ingreso: febrero-2009
Mensajes: 44
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: Problema para habilitar select con checkbox desde PHP

Si escribes más de una función con el mismo nombre te generará problemas. Es lo que haces cuando creas deshabilita() dentro del ciclo while del PHP.
  #4 (permalink)  
Antiguo 24/04/2010, 19:29
 
Fecha de Ingreso: febrero-2009
Mensajes: 44
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: Problema para habilitar select con checkbox desde PHP

Si escribes más de una función con el mismo nombre te generará problemas. Es lo que haces cuando creas deshabilita() dentro del ciclo while del PHP.
  #5 (permalink)  
Antiguo 24/04/2010, 19:53
 
Fecha de Ingreso: agosto-2009
Mensajes: 59
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema para habilitar select con checkbox desde PHP

muchas gracias por tu respuesta pero ya lo probe fuera del while y no funciona, tendras alguna solucion?
  #6 (permalink)  
Antiguo 24/04/2010, 20:05
 
Fecha de Ingreso: febrero-2009
Mensajes: 44
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: Problema para habilitar select con checkbox desde PHP

Código PHP:
Ver original
  1. echo "<tr bgcolor=$bgc height=20 class=Estilo5
  2.            <td>$codigo</td>
  3.            <td>$producto</td>
  4.            <td><input type='checkbox' name='pedido' id='pedido".$codigo."' value='".$precio."' onClick='deshabilita(\"$codigo\");'></td>
  5.            <td>
  6.                <select id='cantidad".$codigo."' name='cantidad' disabled>
  7.                    <option selected='selected'>1</option>
  8.                    <option value='2'>2</option>
  9.                    <option value='3'>3</option>
  10.                    <option value='4'>4</option>
  11.                    <option value='5'>5</option>
  12.                </select>
  13.            </td>
  14.            <td>$precio</td>
  15.        </tr>";
Fijate en el parámetro enviado a deshabilita()

Código Javascript:
Ver original
  1. function deshabilita(codigo)
  2. {
  3.     if (document.getElementById("pedido" + codigo).checked) {
  4.         document.getElementById("cantidad" +codigo).disabled = false;
  5.     } else {
  6.         document.getElementById("cantidad" +codigo).disabled = true;
  7.     }
  8. }


Prueba con eso
  #7 (permalink)  
Antiguo 25/04/2010, 08:00
 
Fecha de Ingreso: agosto-2009
Mensajes: 59
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema para habilitar select con checkbox desde PHP

Hermano eseceve mil gracias por tu ayuda! se solucionó! de verdad te lo agradezco!
  #8 (permalink)  
Antiguo 27/04/2010, 12:22
 
Fecha de Ingreso: febrero-2009
Mensajes: 44
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: Problema para habilitar select con checkbox desde PHP

De nada.
Ten en cuenta que la función se puede mejorar e incluso sería bueno hacer la separación de las 3 capas; Estructura (html), diseño (css) y comportamiento (js).

Saludos

Etiquetas: checkbox, habilitar, php, select
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 15:31.