PHP - Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

   
Vista:

Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

Publicado por Vicente (15 intervenciones) el 03/06/2016 18:32:53
Hola si alguien me pudiera orientar con lo siguiente se lo agradecería:

Tengo una tabla con resultados de una consulta a la BD, donde muestro varios registros, como nombre, mail, estatus etc, aparte las acciones clasicas de borrar y editar, también una acción que mande un correo a los registros seleccionados, no tengo mucho concimiento de php, pero lo conseguí mirando algunos códigos, el problema es que el checkbox sólo me trae los registros de los emails a donde se va a enviar cierta información, pero además necesito que al mismo tiempo me traiga el nombre de otro campo y guardar en una consulta a quién se le envío el correo.

No se cómo asociar los campos email, celebridad y estatus, mediante el checkbox para que los recoga el archivo en php, y ahi separarlos, o extraerlos para realizar las acciones correspondientes, de enviar el email con el nombre, y guardar el estatus en la BD.

El código php de la tabla que muestra los datos es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
		include('php/conexion.php');
		$i			= 0;
		$query="SELECT id, celebridad, email, estatus FROM registrarceleb";
		$rs  		= $mysqli->query($query);
		if(mysqli_num_rows($rs)!=0){
			while($row = mysqli_fetch_assoc($rs)){
				$i	= $i + 1;
				echo '</tr>';
				echo '<tr>';
				echo '<td>'.$row['id'].'</td>';
				echo '<td>'.$row['celebridad'].'</td>';
				echo '<td>'.$row['email'].'</td>';
				echo '<td>'.$row['estatus'].'</td>';
				echo '<td><input value="'.$row['email'].'" type="checkbox" name="check[]"/></td>';
				echo '<td><a href="editarCel.php?id='.$row['id'].'">Editar ></a></td>';
				echo '<td><input id="ID'.$i.'" name="IDS'.$i.'" type="checkbox" value="'.$row['id'].'"></td>';
				echo '</tr>';
    echo '<input type="hidden" name="estatus" value="Enviado" />';
       echo '<input type="hidden" value="'.$row['id'].'" name="id"/>';
       echo '<input type="hidden" value="'.$row['celebridad'].'" name="celebridad"/>';
			}
		}else{
			echo "<tr><td colspan=5><center>No Existe Registro</center></td></tr>";
		}
 
	?>
      <input type="hidden" value="<?php echo $i; ?>" name="contadorx"/>
    </form>
	</table>

El checkbox tiene el name="check[]

Y el archivo que lo precesa tiene el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//Acciones para enviar mail
	if (!empty($_POST['enviar'])) {
 
	if(isset($_POST['check']) == true)
{
	echo '<h2>Lista de emails enviados</h2>';
	echo '<table id="tabla_registros1" border=1 width="80%">
<tr><th>Mail Enviado a: </td><th>Celebridad:</th></tr>';
	//print_r($_POST);
 
	 include('php/conexion.php');
	$id=$_POST['id'];
	$celebridad=$_POST['celebridad'];
    $estatus=$_POST['estatus'];
	$query="UPDATE registrarceleb  SET estatus='$estatus' WHERE id='$id'";
	$resultado=$mysqli->query($query);
 
	foreach($_POST['check'] as $k => $v)
	{
		$noreply="noreply@mail.mx";
$to = $v;
$headers = "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "From:".$noreply."\r\n";
$tema="Contacto desde contacto.mx";
$mensaje="<h2>Estimado (a): </h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eleifend vestibulum aliquet. Donec lacinia rutrum velit sed auctor. Sed quis tempor nibh, in tincidunt lorem. Fusce sapien urna, accumsan id vehicula ac, sagittis vel nulla. Nulla lectus erat, tincidunt molestie ligula ac, blandit convallis quam. Phasellus eget dui eu arcu faucibus tincidunt ut nec orci.<br><br>
<a href='http://prueba_registro.php'>Link de Acceso</a></p>
";
if(@mail($to,$tema,$mensaje,$headers));
{
/*echo '<script language="javascript">alert("El email ha sido enviado");</script>'; */
echo '<tr><td>'.$v.'</br></td><td>'.$celebridad.'</td></tr>';
/*echo '<META HTTP-EQUIV="Refresh" CONTENT="10; URL=../consultar.php">';*/
   }
  }
  echo "<br>";
  echo "<a href='consultar.php'>Regresar</a>";
}
else {
	echo "No se puede enviar el formulario, verifica los campos";
 
}
}
?>

De la manera que lo tengo sólo me devuelve el último registro con el nombre, y lo repite para todos los email.

Espero no haberme enredado tanto, y a ver si me pueden orientar un poco.

Saludos.
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 Miguel

Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

Publicado por Miguel (15 intervenciones) el 04/06/2016 14:54:00
No se si puedes hacer algo como esto:

1
2
3
4
5
6
7
8
9
10
11
12
<form action="" method="POST">
    <input type='checkbox' name="c1" value="co@1"/>check 1<br/>
    <input type='checkbox' name="c2" value="co@2"/>check 2<br/>
    <input type='checkbox' name="c3" value="co@3"/>check 3<br/>
    <input type="submit" name="go" value="go"/>
</form>
 
<?php
    foreach ($_POST as $check=>$valor){
        print "el check es ".$check." - ".$valor."<br>";
    }
?>

En el foreach solo procesas lo que realmente se selecciono
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

Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

Publicado por Vicente (15 intervenciones) el 04/06/2016 19:00:19
Hola Gracias por tu respuesta, lo que necesito es que un solo checkbox recoga esos datos y luego separarlos para hacer las consultas separadas: enviar el mail a los correos recibidos, guardar en la base de datos el estatus de las personas a las que se envió, y moistrar en pantalla el nombre y el correo de a quienes se envío... el mail se envía bien a todos. pero cuando intento mostrar los nombres, sólo me devuelve el último registro.

esta es la vista de donde se envía

vista

y este es el resultado:



vista2
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 kip

Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

Publicado por kip (562 intervenciones) el 04/06/2016 19:33:35
Hola, no te entiendo del todo, quieres un checkbox unico que recoga todos los mails y asi mismo las celebridades, luego de esto enviar por cada valor recogido un mail?

Por cierto, prodrias colocar el codigo de la imagen que colocaste, esta:
5753090dd050a-vista2

Tambien me gustaria ver como estas enviando los mails ahora, porque en el codigo que colocaste arriba no logro apreciar bien la estructura, trata de colocarlo completo o talvez adjuntarlo.

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

Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

Publicado por Vicente (15 intervenciones) el 04/06/2016 19:57:08
Hola, gracias por la respuesta, sí el checkbox por ahora recoge todos los mails seleccionados y los envía correctamente, envio un sólo mail masivo, pero también necesito que me pase el valor de la celebridad y el valor del estatus, lo he intantedo recoger mediante el id, pero a la hora de la consulta me recibe sólo el último registro, supongo que es porque están fuera del evento del checkbox. adjunto los archivos que me pides

consultarCelebridades.php me trae los registros de la BD, y prscpt.php, hace el proceso, la primer consulta elimina los seleccionados, y en la segunda hace el envío del email, ahí mismo hago la tabla donde muestro los emails enviados.... y ahí debería guardar el estatus en la bd... es lo que no consigo hacer.

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
Imágen de perfil de kip

Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

Publicado por kip (562 intervenciones) el 05/06/2016 01:05:38
Hola, he hecho algo para mostrar las celebridades luego de enviar el mail, aqui te dejo adjuntado el codigo modificado, un breve resumen:

Aqui lo que hice es crear un checkbox con el nombre de check_celeb[] que almacenara las celebridades de los emails seleccionados, es por ello que en el id coloque $row['email'], para luego con una funcion javascript al momento de seleccionar el email al que querramos hacer el envio en el checkbox check[] este pase su valor a la funcion javascript, que luego de recibirla evaluara el checkbox que contiene las celebridades y solo seleccionara o hara checked a aquellas que coincidan con el id que es el valor que recibe la funcion desde el checkbox de los emails.

consultarCelebridades.php
1
2
echo '<td><input value="'.$row['email'].'" type="checkbox" name="check[]" onclick=" check_celeb(this.value)"/></td>';
echo '<td><input value="'.$row['celebridad'].'" type="checkbox" name="check_celeb[]" id="'.$row['email'].'" style="display: none"/></td>' ;

Aqui la funcion, que se encuentra en el mismo consultarCelebridades.php
1
2
3
4
5
6
7
8
9
10
<script language="JavaScript" type="text/javascript">
        function check_celeb(id){
            if ( document.getElementById(id).checked){
                document.getElementById(id).checked = false;
            } else {
                document.getElementById(id).checked = true;
            }
 
        }
    </script>

Ahora para recibirlas es igual que con $_POST['check']:

prscpet.php
1
$celebridad=$_POST['check_celeb']; //valores del checkbox de celeb

Aqui te dejo tambien el codigo de acciones para enviar el mail que modifique en el archivo prscpet.php:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//Acciones para enviar mail
    if (!empty($_POST['enviar'])) {
 
        if(isset($_POST['check']) == true)
        {
            echo '<h2>Lista de emails enviados</h2>';
            echo '<table id="tabla_registros1" border=1 width="80%">
<tr><th>Mail Enviado a: </td><th>Celebridad:</th></tr>';
            //print_r($_POST);
 
            include('php/conexion.php');
            $id=$_POST['id'];
            $celebridad=$_POST['check_celeb']; //valores del checkbox de celeb
            $estatus=$_POST['estatus'];
            $query="UPDATE registrarceleb  SET estatus='$estatus' WHERE id='$id'";
            $resultado=$mysqli->query($query);
            $tabla_env = '';
            $to ='';
            foreach($_POST['check'] as $k => $v)
            {
                $noreply="noreply@web.mx";
                $to .= $v;
                $headers = "Content-Type: text/html; charset=iso-8859-1\n";
                $headers .= "From:".$noreply."\r\n";
                $tema="Contacto desde web.mx";
                $mensaje="<h2>Estimado (a): </h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eleifend vestibulum aliquet. Donec lacinia rutrum velit sed auctor. Sed quis tempor nibh, in tincidunt lorem. Fusce sapien urna, accumsan id vehicula ac, sagittis vel nulla. Nulla lectus erat, tincidunt molestie ligula ac, blandit convallis quam. Phasellus eget dui eu arcu faucibus tincidunt ut nec orci.<br><br>
<a href='http://mefit.mx/prueba_contrato/registro_contrato.php'>Link de Acceso</a></p>
";
                $tabla_env .= '<tr><td>'.$v.'</br></td>'; //a;maceno los valores del email
            }
 
            foreach($_POST['check_celeb'] as $key => $val){ //almaceno los valores de celebridades
                $tabla_env .='<td>'.$val.'</td></tr>';
            }
 
            if(@mail($to,$tema,$mensaje,$headers));
            {
                /*echo '<script language="javascript">alert("El email ha sido enviado");</script>'; */
                echo $tabla_env;
                /*echo '<META HTTP-EQUIV="Refresh" CONTENT="10; URL=../consultarCelebridades.php">';*/
            }
 
            echo "<br>";
            echo "<a href='consultarCelebridades.php'>Regresar</a>";
        }
        else {
            echo "No se puede enviar el formulario, verifica los campos";
 
        }
    }
    ?>

Te adjunto los archivos para que los analices, comentanos si te sirvio.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

Publicado por Vicente (15 intervenciones) el 05/06/2016 03:09:37
Hola Gracias por el tiempo, ya lo probé, pero ahora sólo me regresa el valor del del primer resultado, había intentado algo similar con php, pero siempre me regresa sólo el último nombre.


vista3
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 kip

Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

Publicado por kip (562 intervenciones) el 05/06/2016 03:40:49
Yo hice la prueba Vicente y obtuve el resultado que necesitas, es muy raro, podrias colocar el codigo de como estas recibiendo la variable $_POST['check_celeb'], es decir el modificado.

Ya que aqui en esta linea :
1
2
3
foreach($_POST['check_celeb'] as $key => $val){ //almaceno los valores de celebridades
                $tabla_env .='<td>'.$val.'</td></tr>';
            }

Recibes y almacenas cada valor de la variable check_celeb.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

Publicado por Vicente (15 intervenciones) el 05/06/2016 04:14:58
Hola kip, gracias por el tiempo, de hecho hice la prueba con el archivo modificado que me mandaste con la tabla que creas con la variable $tabla_env, así tal cuál, y la imagen que puse es el resultado que me arrojó.
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 kip

Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

Publicado por kip (562 intervenciones) el 05/06/2016 04:48:53
Podrias hacer un var_dump() al inicio del archivo que recibes las variables, asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
if(isset($_POST['check']) == true)
        {
            echo '<h2>Lista de emails enviados</h2>';
            echo '<table id="tabla_registros1" border=1 width="80%">
<tr><th>Mail Enviado a: </td><th>Celebridad:</th></tr>';
            //print_r($_POST);
 
            include('php/conexion.php');
            $id=$_POST['id'];
            $celebridad=$_POST['check_celeb']; //valores del checkbox de celeb
            var_dump($celebridad); //AQUI HACES VAR_DUMP 
            $estatus=$_POST['estatus'];
            $query="UPDATE registrarceleb  SET estatus='$estatus' WHERE id='$id'";


Coloca aqui lo que te muestra el var_dump, ya que es la estructura del array la que te mostara y asi verificar si llegan todas las celebridades correspondientes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

Publicado por Vicente (15 intervenciones) el 05/06/2016 04:54:27
Esto es lo que sale

vista4
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 kip

Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

Publicado por kip (562 intervenciones) el 05/06/2016 05:16:53
Si te muestra las celebridades, lo que ocurre es que esta mal el diseño de la tabla, fijate bien:
Screenshot_164

Cambia esta parte del codigo de esta forma:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
foreach($_POST['check'] as $k => $v)
    {
    $noreply="noreply@web.mx";
    $to .= $v;
    $headers = "Content-Type: text/html; charset=iso-8859-1\n";
    $headers .= "From:".$noreply."\r\n";
    $tema="Contacto desde web.mx";
    $mensaje="<h2>Estimado (a): </h2>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eleifend vestibulum aliquet. Donec lacinia rutrum velit sed auctor. Sed quis tempor nibh, in tincidunt lorem. Fusce sapien urna, accumsan id vehicula ac, sagittis vel nulla. Nulla lectus erat, tincidunt molestie ligula ac, blandit convallis quam. Phasellus eget dui eu arcu faucibus tincidunt ut nec orci.<br><br>
        <a href='http://mefit.mx/prueba_contrato/registro_contrato.php'>Link de Acceso</a></p>
    ";
    $tabla_env .= '<tr><td>'.$v.'</td></tr>'; //a;maceno los valores del email
        }
 
        foreach($_POST['check_celeb'] as $key => $val){ //almaceno los valores de celebridades
        $tabla_env .='<tr><td>'.$val.'</td></tr>';
    }

Avisanos como queda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

Publicado por Vicente (15 intervenciones) el 05/06/2016 05:31:28
Hola, sí tienes razón ya de tanto ver el código ni me fijé que los resultados salían en la misma columna del mail, hasta que los conté con los resultados y me sobraban registros... jajaja.... ahorita como acomodaste la tabla salen en una sola columna, pero ya acomodarlos es lo de menos, me ayudaste bastante con el lío que traía de los resultados, te lo agradezco mucho, me hiciste un excelente aporte, gracias de nuevo.
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 kip

Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

Publicado por kip (562 intervenciones) el 05/06/2016 05:35:43
Si, yo tambien de tanto estar viendo he colocado mal el codigo para que muestre en cada columna, lo siento, asi es como debe ser:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$tabla_env.= '<tr>';
     foreach($_POST['check'] as $k => $v)
    {
    $noreply="noreply@web.mx";
    $to .= $v;
    $headers = "Content-Type: text/html; charset=iso-8859-1\n";
    $headers .= "From:".$noreply."\r\n";
    $tema="Contacto desde web.mx";
    $mensaje="<h2>Estimado (a): </h2>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eleifend vestibulum aliquet. Donec lacinia rutrum velit sed auctor. Sed quis tempor nibh, in tincidunt lorem. Fusce sapien urna, accumsan id vehicula ac, sagittis vel nulla. Nulla lectus erat, tincidunt molestie ligula ac, blandit convallis quam. Phasellus eget dui eu arcu faucibus tincidunt ut nec orci.<br><br>
        <a href='http://mefit.mx/prueba_contrato/registro_contrato.php'>Link de Acceso</a></p>
    ";
    $tabla_env .= '<td>'.$v.'</td>'; //a;maceno los valores del email
        }
     $tabla_env.= '</tr>';
     $tabla_env.= '<tr>';
        foreach($_POST['check_celeb'] as $key => $val){ //almaceno los valores de celebridades
        $tabla_env .='<td>'.$val.'</td>';
    }
      $tabla_env.= '</tr>';

Espero asi ya quede resuelto, por lo menos la cuestión de celebridades.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

Publicado por Vicente (15 intervenciones) el 05/06/2016 06:39:32
Hola kip. Sí ha sido de gran ayuda tu aporte, lo del estatus en realidad sólo tiene 2 valores: no enviado y enviado, por default se cargan los registros a la base como no enviados, despues de haber mandado el mail cambia a enviado... y es todo. Me estaba complicando mucho con esa parte también pero me aclaraste muchas dudas y sacaste un poco del enredo en el que estaba, para el estatus ya solamnete hago la consulta y meto directamente el valor si tanta vuelta... y lo dejé así:

1
2
$query="UPDATE registrarceleb  SET estatus='enviado' WHERE celebridad='$val'";
$resultado=$mysqli->query($query);

Y ya funciona todo perfectamente... nuevamente muchas gracias por el tiempo dedicado, me sacaste de un buen embrollo.
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

Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

Publicado por Vicente (15 intervenciones) el 06/06/2016 19:26:17
Una última consulta, no me había fijado que seleccionaba todos los registros, y el código que me diste, me muestra todos, pero si selecciono sólo uno o 2 o 3...me sigue devolviendo todas las celebridades, aunque no estén seccionadas.

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
Imágen de perfil de kip

Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

Publicado por kip (562 intervenciones) el 06/06/2016 19:42:50
Te muestra todas las celebridades aunque solo selecciones ciertos emails para enviar?

Me resulta muy raro, puesto que la funcion javascript determina que selecciona y que no, dependiendo del checkbox de emails que selecciones, fijate en eso.

Lo he probado y a mi solo me muestra los valores que seleccione depediente de la seleccion del otro checkbox.

Podrias tratar de probar un par de veces mas y analizar el codigo a ver que falla realmente, si no puedes solucionarlo, comentanos que es lo que crees que esta fallando y por ende que linea de codigo tal vez este mal.

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

Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

Publicado por Vicente (15 intervenciones) el 06/06/2016 20:21:51
Supongo que radica en el javascript, ya que le quité esas líneas y me sigue mostrando lo mismo... o sea todos los registros....

1
2
3
4
5
6
7
8
9
10
<script language="JavaScript" type="text/javascript">
        function check_celeb(id){
            if ( document.getElementById(id).checked){
                document.getElementById(id).checked = false;
            } else {
                document.getElementById(id).checked = true;
            }
 
        }
    </script>
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 kip

Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

Publicado por kip (562 intervenciones) el 06/06/2016 20:29:15
Podrias mostrarme como tienes configurada la pagina que envia los datos, y asi mismo como estas recibiendo los datos.
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

Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

Publicado por Vicente (15 intervenciones) el 06/06/2016 21:14:19
Los datos se envian desde un formulario simple

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Prueba Registro</title>
<link type="text/css" rel="stylesheet" href="css/estilos_registros.css" />
</head>
<body class="fnd_azul">
<div id="registros">
<form action="php/agregar.php" enctype="multipart/form-data" method="post">
<h2>Registrar Celebridad</h2>
<label for="celebridad">Celebridad</label>
<input type="text" name="celebridad" required/>
<label for="email" />Email</label>
<input type="text" name="email" required/>
<input type="submit" name="enviarForm" class="boton_form2" value="Guardar" />
<input type="button"  class="boton_form1" value="Lista de Prospectos" onClick="location='consultarCelebridades.php'" />
<input type="button"  class="boton_form1" value="Contratos" onClick="location='consultarRegistroCelebridades.php'" />
<input type="button"  class="boton_form1" value="Importar Contactos" onClick="location='importar_base.php'" />
</form>
</div>
</body>
</html>

se procesan con el si. código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
 
	require('conexion.php');
 
	$celebridad=$_POST['celebridad'];
	$email=$_POST['email'];
	$estatus= "No Enviado";
 
	$query="INSERT INTO registrarceleb (celebridad, email, estatus) VALUES ('$celebridad','$email','$estatus')";
 
	$resultado=$mysqli->query($query);
 
if($resultado>0){
				echo "
                <script language='JavaScript'>
                alert('Celebridad Guardada');
                </script>";
				echo "<html><head><meta http-equiv='REFRESH' content='0;url=../inicio.php'></head></html>";
				 }else{
				echo "
                <script language='JavaScript'>
                alert('Error al guardar a la Celebridad');
                </script>";
			echo "<html><head><meta http-equiv='REFRESH' content='0;url=../inicio.php'></head></html>";
				} ?>
Y los llamo con el archivo consultarCelebridades, el archivo que los procesa, tal cuál los adjunté
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 kip

Pasar vario registros de una consulta mysql mediante un checkbox y procesarlos en php.

Publicado por kip (562 intervenciones) el 06/06/2016 21:43:36
No me referia a esas lineas de codigo, si no a las que modifique, le hiciste algun cambio ? te lo pregunto porque es raro que la funcion javascript no solucione aquello que te da problemas, ya que para eso fue configurada.

Ahora bien en esta parte del codigo que posteaste arriba la sintaxis no es correcta, seria mejor si la colocas asi:

1
if( $resultado == true ){
Ya que haces un insert nada mas.

Por otro lado con el problema que tienes intentare analizar esto:

1
2
echo '<td><input value="'.$row['email'].'" type="checkbox" name="check[]" onclick=" check_celeb(this.value)"/></td>';
echo '<td><input value="'.$row['celebridad'].'" type="checkbox" name="check_celeb[]" id="'.$row['email'].'" style="display: none"/></td>' ;

Si te fijas en cada checkbox que cntiene el valor de email en el atributo onclick llama a la funcion a ejecutarse y envia como parametro a esta el valor del mismo, y como ya sabes la funcion javascript es esta:

1
2
3
4
5
6
7
8
9
10
<script type="text/javascript">
    function check_celeb(id){
        if ( document.getElementById(id).checked){
            document.getElementById(id).checked = false;
        } else {
            document.getElementById(id).checked = true;
        }
 
    }
</script>

Recibe el parametro enviado del checkbox al darle click y lo evalua, seleccionando automaticamente el checkbox con el valor enviado, que en este caso seria la id del checkbox celebridades.

Prueba ahora cambiando tal vez de onclick a onchange y en la funcion cambiando el parametro de la condicion, a ver si te resuelve el problema:


1
2
3
4
5
6
7
8
9
10
<script type="text/javascript">
    function check_celeb(id){
        if ( document.getElementById(id).checked == true){
            document.getElementById(id).checked = false;
        } else {
            document.getElementById(id).checked = true;
        }
 
    }
</script>

1
2
echo '<td><input value="'.$row['email'].'" type="checkbox" name="check[]" onchange=" check_celeb(this.value)"/></td>';
echo '<td><input value="'.$row['celebridad'].'" type="checkbox" name="check_celeb[]" id="'.$row['email'].'" style="display: none"/></td>' ;
'
'
Comentanos como te fue

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