PHP - Colocar la coma y la Y uso de varios checkbox

 
Vista:
sin imagen de perfil
Val: 396
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Colocar la coma y la Y uso de varios checkbox

Publicado por Robokick (156 intervenciones) el 17/09/2020 17:38:02
Amigos hice un formulario que solicite la carga del nombre de una persona y que permita seleccionar una serie de deportes que practica (futbol, basket, tennis, artes marciales) y debo mostrar el deporte o los deportes que practica usando un checkbox

ESTE ES MI HMTL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
<head>
	<meta charset="UTF-8">
	<title>Formulario de deportes</title>
</head>
<body>
	<form method="post" action="deporte.php">
	Nombre completo
	<input type="text" name="nombre">
	<br>
	Deportes favoritos
	<input type="checkbox" name="check1[]" value="Fútbol">Fútbol
	<input type="checkbox" name="check1[]" value="Basquet">Basquet
	<input type="checkbox" name="check1[]" value="Tennis">Tennis
	<input type="checkbox" name="check1[]" value="Artes Marciales">Artes Marciales
	<br><br>
	<input type="submit" name="boton">
	</form>
</body>
</html>

ESTE ES MI PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
echo $_REQUEST["nombre"]." "."practica"." ";
if (isset($_REQUEST["check1"]))
{
	foreach($_REQUEST["check1"] as $deportes)
	{
		//echo "<br>";
		echo $deportes." ";
	}
}
else
{
	echo "DEBE DE SELECCIONAR DEPORTE";
}

COMO PUEDO HACER PARA AGREGAR LA COMA Y TAMBIEN LA Y
PORQUE SI SELECCIONO VARIOS DEBE DE ESTAR SEPARADO POR COMAS Y AL FINAL POR LA Y

EL PROGRMA ME DEVUELVE ASI
Robokick practica Basquet Tennis Artes Marciales

SIN LA COMA Y SIN LA Y

ESTOY APRENDIENDO PHP Y ESPERO SU AYUDA GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de javier
Val: 1.542
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Colocar la coma y la Y uso de varios checkbox

Publicado por javier (547 intervenciones) el 17/09/2020 19:35:16
Hola,

podrias hacer algo asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$deportes =  $_REQUEST["check1"] ;
$cuantos = count($deportes);
 
for ($i = 0; $i< $cuantos; $i++){
 
  echo $deportes[$i];
    //hasta antes del penultimo elemento del array imprimimos una coma y un espacio
    if ( $i < ($cuantos - 2) ) echo ', ';
    //antes del ultimo elemento imprimimos una y con espcio antes y despues
    if ( $i == ($cuantos - 2) ) echo ' y ';
    //despues del ultmo elemento imprimimos un . sin espacios
    if ( $i == ($cuantos -1) ) echo '.';
 
  }

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 396
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Colocar la coma y la Y uso de varios checkbox

Publicado por Robokick (156 intervenciones) el 20/09/2020 19:54:24
Hola Javier
mira hice pruebas y en mi caso tengo 4 checkbox y cuando selecciono 3 el programa me pone la coma solo despues del primer elemento

futbol,basquetvoley

y si no marco ningun checkbox simplmente deberia devolverme una pantalla en blanco pero ahora me sale error cuando antes no salia
! ) Notice: Undefined index: check1 in C:\wamp\www\Web\checkbox\check1.php on line 3

TE PONGO MI CODIGO LA LINE 3 CORRESPONDE A $cuantos=count($_REQUEST["check1"]);

1
2
3
4
5
6
7
8
9
10
11
12
13
$cuantos=count($_REQUEST["check1"]);
 
if (isset($_REQUEST["check1"]))
{
	for($num=0;$num < count ($_REQUEST["check1"]);$num++)
	{
		echo $_REQUEST["check1"][$num];
 
if ($num < ($cuantos - 2))echo ",";
 
	}
 
}

SI DEJO MI CODIGO DE ESTA FORMA ME MUESTRA LO QUE SELECCIONO EN MI CHECKBOX ASI SEA 1 O MAS SELECCION Y SI NO MARCO NADA ME DEVUELVE LA PANTALLA EN BLANCO

1
2
3
4
5
6
7
if (isset($_REQUEST["check1"]))
{
	for($num=0;$num < count ($_REQUEST["check1"]);$num++)
 
		echo $_REQUEST["check1"][$num];
 
}

ESPERO TU GENTIL AYUDA
GRACIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de javier
Val: 1.542
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Colocar la coma y la Y uso de varios checkbox

Publicado por javier (547 intervenciones) el 22/09/2020 08:05:58
pero si la solucion te la puse arriba

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if (isset($_REQUEST["check1"]))
{
 
$deportes =  $_REQUEST["check1"] ;
$cuantos = count($deportes);
 
for ($i = 0; $i< $cuantos; $i++){
 
  echo $deportes[$i];
    //hasta antes del penultimo elemento del array imprimimos una coma y un espacio
    if ( $i < ($cuantos - 2) ) echo ', ';
    //antes del ultimo elemento imprimimos una y con espcio antes y despues
    if ( $i == ($cuantos - 2) ) echo ' y ';
    //despues del ultmo elemento imprimimos un . sin espacios
    if ( $i == ($cuantos -1) ) echo '.';
 
  }
 
}

solo tenias que poner el isset, asi se comprueba que la variable este seteada
y de esta manera no te aparezca la notificacion NOTICE,, que no es un error es un aviso tan solo y si te molestan
con poner

1
error_reporting(0);

al principio de cada codigo, no vuelven a salir, pero desactivar lo errores no se suele hacer en produccion, mientras desarrollas, se hace cuando el proyecto esta acabado.

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 396
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Colocar la coma y la Y uso de varios checkbox

Publicado por Robokick (156 intervenciones) el 25/09/2020 18:22:05
HOLA JAVIER

ESTE CODIGO NO ME GENERA LA Y
1
if ( $i == ($cuantos - 2) ) echo ' y ';

LA COMA SI LO GENERA PERO NO LA Y TAMPOCO EL CODIGO QUE DEBE GENERAR EL PUNTO
MI CODIGO

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$mes["enero"]="0";
$mes["febrero"]=10;
$mes["marzo"]="0";
$mes["abril"]="10";
$mes["mayo"]="20";
$cuantos=count($mes);
 
echo "Los meses que si vieron peliculas son"." ";
 
foreach ($mes as $month => $me) {
if ($me!=0)
	{
		if($month <($cuantos-2))echo $month. ",";
 
	}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de javier
Val: 1.542
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Colocar la coma y la Y uso de varios checkbox

Publicado por javier (547 intervenciones) el 25/09/2020 19:57:13
por tercera vez, no cambies nada ni tye dejes nada del codigo, que ya te lo puse arruiba


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if (isset($_REQUEST["check1"]))
{
 
$deportes =  $_REQUEST["check1"] ;
$cuantos = count($deportes);
 
for ($i = 0; $i< $cuantos; $i++){
 
  echo $deportes[$i];
    //hasta antes del penultimo elemento del array imprimimos una coma y un espacio
    if ( $i < ($cuantos - 2) ) echo ', ';
    //antes del ultimo elemento imprimimos una y con espcio antes y despues
    if ( $i == ($cuantos - 2) ) echo ' y ';
    //despues del ultmo elemento imprimimos un . sin espacios
    if ( $i == ($cuantos -1) ) echo '.';
 
  }
 
}

pone todas las comas, la y y el punto prefectamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de javier
Val: 1.542
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Colocar la coma y la Y uso de varios checkbox

Publicado por javier (547 intervenciones) el 25/09/2020 20:21:11
vamos que lo copies y lo pegues, no adaptes nada, ya te lo he adaptado yo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 396
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Colocar la coma y la Y uso de varios checkbox

Publicado por Robokick (156 intervenciones) el 25/09/2020 23:14:24
Es que estoy haciendo otro código y trato de aplicar lo que me dices
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Colocar la coma y la Y uso de varios checkbox

Publicado por Yamil (888 intervenciones) el 25/09/2020 23:56:44
Es mejor haceruna funcion general. Algo como

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function specialjoin($array, $sep = ",", $endseparator = " y ") {
 
  $len = count($array) - 1;
  $result = '';
  $i = 0;
  foreach ($array as $key => $value) {
    if ($i < $len) {
      $result = $result . $value . $sep;
    }
 
    if ($i == $len) {
      $result = $result . $endseparator . $value;
   }
   $i++;
 }
 
  return $result;
 
}

y para usarla:

1
2
3
4
5
6
7
8
9
$mes["enero"]="0";
$mes["febrero"]=10;
$mes["marzo"]="0";
$mes["abril"]="10";
$mes["mayo"]="20";
 
echo "Los meses que si vieron peliculas son: " ;
$result = specialjoin($mes);
echo $result;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 396
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Colocar la coma y la Y uso de varios checkbox

Publicado por Robokick (156 intervenciones) el 26/09/2020 02:26:58
Wowww yo recién estoy aprendiendo php veo un código algo pro☹️
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de javier
Val: 1.542
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Colocar la coma y la Y uso de varios checkbox

Publicado por javier (547 intervenciones) el 26/09/2020 20:57:46
Hombre, lo mejor, lo mejor..... a lo mejor sería hacer una clase fechas que contenga los métodos y propiedades qué necesitas aplicar, no una función "general". Pero que vamos que si consideras que es mejor una función que una clase.....
Yo lo que no quería es llegar al punto de las funciones ni de los métodos para llegar a soluciones, que a lo mejor son demasiado para gente que empieza.
Sería una discusión muy larga acerca de la programación procedimental que es la que tu propones o la OOP.
Yo desde luego prefiero la OOP a la programación procedimental. Mucho más ordenada y muy preparada para la reutizacion de código.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar