Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Por cada checkbox marcada contar cierto porcentaje y enviarlo a tabla con PHP

Estas en el tema de Por cada checkbox marcada contar cierto porcentaje y enviarlo a tabla con PHP en el foro de PHP en Foros del Web. Hola que tal. Aquí otra vez con un nuevo problema que espero me puedan ayudar a resolver. Lo que pasa es que tengo una tabla ...
  #1 (permalink)  
Antiguo 26/08/2015, 19:33
 
Fecha de Ingreso: agosto-2015
Mensajes: 9
Antigüedad: 4 años, 6 meses
Puntos: 0
Por cada checkbox marcada contar cierto porcentaje y enviarlo a tabla con PHP

Hola que tal.

Aquí otra vez con un nuevo problema que espero me puedan ayudar a resolver. Lo que pasa es que tengo una tabla en la que aparecen unos checkbox los cuales al ir seleccionandolos necesito me vayan contando cierto porcentaje. Por ejemplo:

1 Seleccionado = 1%
2 Seleccionados = 5%
3 Seleccionados = 10%
4 Seleccionados = 15%
5 Seleccionados = 20%

y así sucesivamente, eso sería el equivalente al descuento que se les haría en un pago.

Muestro la tabla a continuación:


En la tabla me gustaría que a la derecha del botón enviar descuento me vaya apareciendo el porcentaje y una vez presionando el botón este se envíe a la siguiente tabla de la base de datos llamada usuarios:


El problema y por lo que se me ha dificultado es porque los checkbox no son independientes, osea es uno solo pero reproducido dentro de un while, sería algo asi:

Código PHP:
 <?php
//Contamos cuantos amigos tenemos registrados
$contador mysql_query("SELECT * FROM amigos WHERE usuario = '$_REQUEST[prosamig]'");
$total_de_filas mysql_num_rows($contador);
  
//imprimimos la cantidad de amigos
echo "Tiene ".$total_de_filas." amigos(as) registrados<br><hr>";
 
//mostramos una lista de los amigos
if($total_de_filas >0){
    
$con =1?>
    <form name="register" onsubmit="">
    <table width="800" border="0">
  <tr class="TablaCabecera"> 
    <td>Nombre</td>
    <td>Telefono</td>
    <td>Email</td>
    <td>Facebook</td>
    <td>Fecha</td>
    <td>Acciones</td>   
  </tr>
   
    <?php //listamos los amigos si se cumple la condicion
    
while($row_EditAmigos mysql_fetch_array($contador))
    {
?>
      
      
      <tr class="Results">
      <td><input type="checkbox" id="chkname" value="name"/>
          <?php echo $row_EditAmigos['nombre']; ?></td>
      <td><?php echo $row_EditAmigos['telefono']; ?></td>
      <td><?php echo $row_EditAmigos['email']; ?></td>
      <td><?php echo $row_EditAmigos['social']; ?></td>
      <td><?php echo $row_EditAmigos['fecha']; ?></td>
      <td><a href="">Editar</a>-<a href="">Eliminar</a></td>
    </tr>
      
        
    <?php    $con++;
    }
   
} else{
    echo 
"no hay";
}
?>
    
      
    </table>
    <br />
    <input type="submit" name="select" id="select" onclick="return seleccionar_todo()" value="Seleccionar Todo">
    <input type="submit" name="non_select" id="non_select" onclick="return deseleccionar_todo()" value="Deseleccionar">
    <br />
    <br />
    <input type="submit" name="Desc" id="Desc" onclick="" value="Enviar Descuento">
    </form>
Estuve intentando con Javascript pero no me funciono bien porque necesito enviar datos a la tabla de la bd. Espero alguien me pueda ayudar y si necesitan más información solo diganme y con gusto se la pongo. A una última cosa, estoy usando mysql no mysqli ya que así empece toda la programación y en cambiarlo a la segunda tardaría una eternidad.

Gracias de antemano por su atención.
  #2 (permalink)  
Antiguo 26/08/2015, 19:51
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 10 meses
Puntos: 2534
Respuesta: Por cada checkbox marcada contar cierto porcentaje y enviarlo a tabla con

Primero, los "id" son únicos en el HTML, así que ese es un problema.

Ahora, debes usar la notación de array tipo name[] para acumular los datos comunes.

Código HTML:
Ver original
  1. <input type="checkbox" value="name[]"/>

Al recibir los datos ya vienen en un array, de ahí puedes deducir los porcentajes en relación a cuantos vengan.

Código PHP:
Ver original
  1. var_dump(sizeof($_POST['name']));
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 27/08/2015, 13:44
 
Fecha de Ingreso: agosto-2015
Mensajes: 9
Antigüedad: 4 años, 6 meses
Puntos: 0
Respuesta: Por cada checkbox marcada contar cierto porcentaje y enviarlo a tabla con

Gracias por tu respuesta, pero tengo una duda, por ejemplo le puse al check box de valor 5 como ejemplo:

<td><input type="checkbox" id="chkname" name="chkname" value="5"/>

después asigne una variable y la mostré para ver que si esta enviando:

$box = $_POST['chkname'];

echo $box;

Le puse lo que me enviaste:

var_dump(sizeof($box));

Lo cual al investigar var_dump encontre que sirve para mostrar información estructurada sobre una variable y sizeof es solo un alias para coun(), pero el resultado que me da es este:

5int(1)

Me lo da siempre, no importa que este seleccionando un check box o todos. Se que debe ser asi ya que los checkbox no son independientes es uno reproducido varias veces. Seria interesante meter un if y decir que que si esta un check box seleccionado osea value=5 me muestre un 5% con un echo, eso es fácil ya que no importa los que seleccione siempre da el valor 5 que le asigne y ese es mi problema, no se como independizar cada check box se que debo hacer eso primero pero no tengo ni idea, me diste una pista con var_dump pero no la entendi muy bien. Espero me puedas responder.
  #4 (permalink)  
Antiguo 27/08/2015, 14:41
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 10 meses
Puntos: 2534
Respuesta: Por cada checkbox marcada contar cierto porcentaje y enviarlo a tabla con

¿Si leíste la parte de la notación de array[] o no?

Ese es tu problema, lee bien.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 27/08/2015, 21:29
 
Fecha de Ingreso: agosto-2015
Mensajes: 9
Antigüedad: 4 años, 6 meses
Puntos: 0
Respuesta: Por cada checkbox marcada contar cierto porcentaje y enviarlo a tabla con

Hola

Tomando en cuenta tu valiosa ayuda, estuve todo el día investigando y logre dar con lo siguiente:

Lo que php registrara como array lo puse en name:

<label><input type="checkbox" id="num" name="num[]" />

Y el código php para que me mostrara el descuento fue el siguiente:

if(isset($_POST['num'])){
$descuento = sizeof($_POST['num']) * 5;

echo "El descuento enviado es del: " . $descuento."%";
echo "<p class='avisos'><a href='javascript:history.go(-1)' class='clase1'>Volver atrás</a></p>";
}

else{
echo "Ningún descuento fué asignado";
echo "<p class='avisos'><a href='javascript:history.go(-1)' class='clase1'>Volver atrás</a></p>";
}

Lo unico que me falta es enviar la variable $descuento a la tabla de mi base de datos.

Gracias.

Etiquetas: cada, checkbox, fecha, mysql, porcentaje, select, tabla, usuarios
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 11:22.