Foros del Web » Programando para Internet » PHP »

Problema con el uso de varios checkbox

Estas en el tema de Problema con el uso de varios checkbox en el foro de PHP en Foros del Web. Muy wenas a todos. Tengo un pequeño problemilla, que es el siguiente: Tengo este codigo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original //En un formulario de ...
  #1 (permalink)  
Antiguo 27/12/2009, 07:12
 
Fecha de Ingreso: noviembre-2009
Ubicación: Abadiño
Mensajes: 21
Antigüedad: 14 años, 5 meses
Puntos: 0
Pregunta Problema con el uso de varios checkbox

Muy wenas a todos. Tengo un pequeño problemilla, que es el siguiente:
Tengo este codigo:
Código HTML:
Ver original
  1. //En un formulario de tiendas, tengo este checkbox, que se queda con la IP de la tienda.
  2. <input type="checkbox" name="checkbox[]" id="checkbox" value="<?php echo $row_rs_tiendas['DireccionIP']; ?>"/>
  3. //Envio el resultado de ese checkbox a otro formulario de videos.
Código PHP:
<?php
//recorro el checkbox para ver si me coge las tiendas seleccionadas y 
//parece que si
foreach($_POST['checkbox'] as $valor){
  echo 
$valor;
}
//en el formulario de videos tengo otro checkbox que recoje los videos seleccionados y los mete en un txt de la siguiente forma:
if (!empty($_POST['button'])){
      foreach (
$_POST['seleccion'] as $Nombre){
        
$lista "lista.m3u";
        
$bat="prueba.txt";
        
$fpL fopen($lista"a");
        
$fpB fopen($bat"a");
        
$stringL "$Nombre\r\n";
               
$stringB="copy $Nombre [B]DireccionIP[/B] \r\n";
//Aquí esta mi problema, que nose como meter el valor de mi primer checkbox, es decir la variable $valor en donde pone [B]DireccionIP[/B], probe a poner hay $valor pero no me escribe nada.
            
$writeL fputs($fpL,$stringL);
               
$writeB fputs($fpB,$stringB);
            
fclose($fpL);
        }    
}
?>
si alguien me puede ayudar estaria muy agradecido
Un saludo
  #2 (permalink)  
Antiguo 27/12/2009, 07:21
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Problema con el uso de varios checkbox

podrias empezar cambiando este codigo:
Código PHP:
Ver original
  1. if (!empty($_POST['button'])){
por este:
Código PHP:
Ver original
  1. if (isset($_POST['button'])){

y segundo....... el nombre del checkbox que mencionas es "checkbox" ... tu mismo lo indicas aca:
Código PHP:
Ver original
  1. foreach($_POST['checkbox'] as $valor){

entonces por que luego recorres la variable "seleccion" .... de donde sale ??? no somos adivinos ps amigo.

que relacion tiene "checkbox" con "seleccion"???

explica bien el funcionamiento de tu formulario y te ayudaremos con gusto.

Suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #3 (permalink)  
Antiguo 27/12/2009, 11:56
 
Fecha de Ingreso: noviembre-2009
Ubicación: Abadiño
Mensajes: 21
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema con el uso de varios checkbox

Muy wenas y gracias por contestar masterojitos.
A ver si me puedo explicar mejor:

Tengo un formulario llamado parrilla_tiendas.php, en el, hay un checkbox que es este:
Código HTML:
<input type="checkbox" name="checkbox[]" id="checkbox" value="<?php echo $row_rs_tiendas['DireccionIP']; ?>"/> 
Se trata de elegir las tiendas que me interesen y luego con un boton...
Código HTML:
<input type="submit" name="button" id="button" value="Enviar" /> 
envio el formulario a otra pagina que se llama parrilla_videos.php
Código HTML:
<form id="form1" name="form1" method="post" action="parrilla_videos.php"> 
En esta pagina hay otro checkbox que es el de seleccion:
Código HTML:
 <input type="checkbox" name="seleccion[]" id="checkbox" value="<?php echo $row_rs_videos['Nombre']; ?>" /> 
Y se trata de seleccionar los videos que me interesan.

Posteriormente, hago lo siguiente:

Código PHP:
if (isset($_POST['button'])){
      foreach (
$_POST['seleccion'] as $Nombre){
        
$lista "lista.m3u";
        
$bat="prueba.txt";
        
$fpL fopen($lista"a");
        
$fpB fopen($bat"a");
        
$stringL "$Nombre\r\n";
        
$stringB="copy $Nombre DireccionIP \r\n";
//Aquí esta mi problema, que nose como meter el valor de mi primer checkbox, es decir la variable $valor en donde pone [B]DireccionIP[/B], probe a poner hay $valor pero no me escribe nada.
         
$writeL fputs($fpL,$stringL);
         
$writeB fputs($fpB,$stringB);
         
fclose($fpL);
        }    
}
?> 
Y es en esta parte de aqui, donde esta mi problema:
Código PHP:
        $stringB="copy $Nombre [B]DireccionIP[/B] \r\n"
Que donde pone DireccionIP ahí es donde quiero meter los datos que ha recogido el checkbox del formulario parrila_tiendas.php pero que nose como hacerlo, porque recorro el checkbox as $valor como puse en el anterior post y luego pongo $valor dentro del foreach seleccion pero es como si no tubiera valor.
Y fuera del foreach seleccion esa variable si que tiene valor.

Nose si me habre explicado mejor.
Un saludo
  #4 (permalink)  
Antiguo 27/12/2009, 12:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con el uso de varios checkbox

necesitas una sola cosa mas... un índice, osea...

checkbox[99] => seleccion[99]

con este índice, solo necesitas obtenerlo vía foreach()
Código PHP:
foreach ($_POST['seleccion'] as $key => $value)
{
  
// y usas el mismo índice para relacionar lo demás
  
echo $_POST['checkbox'][$key];

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 27/12/2009, 12:17
 
Fecha de Ingreso: noviembre-2009
Ubicación: Abadiño
Mensajes: 21
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema con el uso de varios checkbox

Hola pateketrueke

El código que me as pasado no se como integrarlo con mi ejemplo, he estado haciendo pruebas a ver si lo podía solucionar, intentando darle un sentido a lo que escribía pero al final me he liado...
Te pongo lo que tengo que seguramente sea un disparate, pero es que no lo consigo...
Código PHP:
//Esto foreach no se ni para que lo pongo
foreach($_POST['checkbox'] as $value){

}

if (isset(
$_POST['button'])){
      foreach (
$_POST['seleccion'] as $key =>$value){
        
$lista "lista.m3u";
        
$bat="prueba.bat";
        
$fpL fopen($lista"a");
        
$fpB fopen($bat"a");
        
$stringL "$value\r\n";
        
$stringB="copy $value $key\r\n";
        
$writeL fputs($fpL,$stringL);
        
$writeB fputs($fpB,$stringB);
        
fclose($fpL);
        }


Última edición por mendekua; 27/12/2009 a las 13:03 Razón: mala respuesta creada
  #6 (permalink)  
Antiguo 27/12/2009, 13:31
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Problema con el uso de varios checkbox

tu problema mas que guardarlo en el archivo creo que es al momento de poner los "seleccion" apartir de los "checkbox".

es decir, en el archivo parrila_videos tendrias algo asi:
Código PHP:
Ver original
  1. foreach($_POST['checkbox'] as $value){
  2.     echo "<input type='checkbox' name='seleccion[$value]' />";
  3. }

no obstante, te vuelvo a decir que nose tu logica exacta ya que en tu post anterior donde explicavas mas detalladamente no indicas como pintas los checkbox.... osea de donde sale $row_rs_tiendas['DireccionIP'] o $row_rs_videos['Nombre'].........

Por eso te pregunte que relacion tiene el uno con el otro..... si son ambos de una misma tabla.... o cosas asi.... por que un ejemplo preciso seria:

- primero muestro los checkbox con el valor de las ips.
- luego al hacer submit se mandan a otro formulario.
- en este recorro los checkbox con un foreach($checkbox as $v){}y los asigno a otros checkbox con tendran como indice la ip y como valor un nombre obtenido de un select apartir de cada determinada ip.
- por ultimo, recorro con un foreach($seleccion as $k => $v){} las selecciones finales y lleno el archivo correspondiente.

Espero te haya despejado dudas....

Suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #7 (permalink)  
Antiguo 27/12/2009, 14:42
 
Fecha de Ingreso: noviembre-2009
Ubicación: Abadiño
Mensajes: 21
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema con el uso de varios checkbox

Cita:
tu problema mas que guardarlo en el archivo creo que es al momento de poner los "seleccion" apartir de los "checkbox".

es decir, en el archivo parrila_videos tendrias algo asi:

Código PHP:
foreach($_POST['checkbox'] as $value){
    echo 
"<input type='checkbox' name='seleccion[$value]' />";

no obstante, te vuelvo a decir que nose tu logica exacta ya que en tu post anterior donde explicavas mas detalladamente no indicas como pintas los checkbox.... osea de donde sale $row_rs_tiendas['DireccionIP'] o $row_rs_videos['Nombre'].........
A ver si me puedo explicar mejor.
En el archivo parrilla_videos, donde esta el checkbox:
Código PHP:
<input type="checkbox" name="checkbox[]" id="checkbox" value"<?php echo $row_rs_tiendas['DireccionIP']; ?>"/>
El $row_rs_tiendas['DireccionIP']; sale de un recordset que tengo hecho de la tabla tiendas y que tiene los campos: IdTienda, Nombre, DireccionIP y Descripcion.
Y a mi lo que me interesa es quedarme con la DireccionIP de esa(s) tienda(s) para luego procesar esa informacion en el archivo parrilla_videos.php
Y para saber que tienda estoy seleccionando tengo una tabla con dos celdas una para el cuadrado del checkbox y al lado el Nombre y en la otra muestro la DireccionIP.
Entonces selecciono las tiendas que me interesan y al darle al boton de submit me redirige a parrilla_videos.php

En esta página he creado otro recordset que contiene los campos de la tabla videos que son: IdVideo, Nombre y Fecha.

Código PHP:
<input type="checkbox" name="seleccion[]" id="checkbox" value="<?php echo $row_rs_videos['Nombre']; ?>" />
De este checkbox me interesa quedarme con el nombre del video, por eso $row_rs_videos['Nombre'];
Entonces, hay una tabla con 2 celdas, en una esta el cuadradito del checkbox seleccion junto con el campo Nombre y en la otra celda el campo Fecha, entonces elijo el video que quiero que posteriormente en un bat aparecera el video que he elegido con la direccionIP de una de las tiendas. Es decir:
video1.avi 192.168.1.1


Nose si asi ves mas claro de donde salen cada cosa...

Ahora mismo con el codigo que expuse antes he conseguido que el txt aparezca...:
video1.avi 0 (ese cero supongo que sera del $key, pero no se como se usa esa $key)
Un saludo
  #8 (permalink)  
Antiguo 28/12/2009, 08:53
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Problema con el uso de varios checkbox

pero es que no veo ninguna relacion entre tiendas y videos....... para que aparesca un video al lado del otro.....
video1.avi 192.168.1.1
que relacion tienen ???
o como supones tu que deben aparecer ???
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #9 (permalink)  
Antiguo 28/12/2009, 14:54
 
Fecha de Ingreso: noviembre-2009
Ubicación: Abadiño
Mensajes: 21
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema con el uso de varios checkbox

La aplicacion se trata de escoger del formulario de tiendas una o varias tiendas y en el otro formulario de videos escoger uno o varios videos.
Entonces si hemos elegido una tienda y varios videos, en el txt que quiero crear tendria que aparecer los videos que he seleccionado a que IP de la tienda le corresponderia.

Para que posteriormente haga un bat que copie a la direccion IP ( q sera un PC) los videos que he seleccionado.
Por eso el bat tendria una apariencia de este tipo:
Si he seleccionado una tienda, la 192.168.1.1 y 2 videos....

copy video1.avi //192.168.1.1/lo_que_sea
copy video2.avi //192.168.1.1/lo_que_sea

No se que relaccion tienen que tener tiendas y videos, simplemente escogo una informacion de la tabla tiendas y otra de la tabla videos y luego con esa informacion intento hacer el .bat

Quizas haya otra forma de plantearlo??
Un saludo
  #10 (permalink)  
Antiguo 28/12/2009, 16:08
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Problema con el uso de varios checkbox

bueno si te has explicado bien..... pero que pasa si el usuario selecciona dos tiendas y dos videos........
como pones la relacion entre video y tienda.......
ya que segun tu ejemplo:

copy video1.avi //192.168.1.1/lo_que_sea
copy video2.avi //192.168.1.1/lo_que_sea

esta relacion es que escoja videos y se le asigna a todos la tienda.

pero te repito, si escoge varias tiendas ?????
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #11 (permalink)  
Antiguo 28/12/2009, 16:56
 
Fecha de Ingreso: noviembre-2009
Ubicación: Abadiño
Mensajes: 21
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema con el uso de varios checkbox

Tienes razon si coges varias tiendas y varios videos, es una movida...
si fuera asi, lo ideal seria que el archivo quedase asi:

copy video1.avi //192.168.1.1/lo_que_sea
copy video2.avi //192.168.1.1/lo_que_sea
copy video1.avi //192.168.1.2/lo_que_sea
copy video2.avi //192.168.1.2/lo_que_sea

Aunque para hacer eso... igual tendria que plantearlo de algun otro modo...
Se te ocurre a ti alguna idea?? Tambien habia pensado que creara por cada tienda un archivo de forma que si elijo 2 tiendas y varios videos... que tenga varios txt con los videos seleccionaos y con la IP de la tienda, es decir:
archivo1:
copy video1.avi //192.168.1.1/lo_que_sea
copy video2.avi //192.168.1.1/lo_que_sea
archivo2:
copy video1.avi //192.168.1.2/lo_que_sea
copy video2.avi //192.168.1.2/lo_que_sea

A ver que opinas, un saludo
  #12 (permalink)  
Antiguo 28/12/2009, 23:50
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Problema con el uso de varios checkbox

Bueno, sobre que opino, ps....... es tu proyecto no ??? jeje

Por eso justamente desde hace varios post te venia preguntando que relacion tenian el uno con el otro para poder generar los txt.... y ahora quieres inventar una relacion?? haha.

la verdad piensa bien como seria ello, ya que este proceso surge solo apartir de tus requerimientos, es decir, para que lo necesitas, y que necesitas para logar tu objetivo.

Suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #13 (permalink)  
Antiguo 29/12/2009, 05:29
 
Fecha de Ingreso: noviembre-2009
Ubicación: Abadiño
Mensajes: 21
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema con el uso de varios checkbox

OK lo pensare mejor, la verdad es que he estado dedicandole tiempo a como hacerlo, y como no se me ocurria nada por eso postee aqui.

Pero, una cosa, imaginate que solo elige una tienda y 2 videos como en los ejemplos anteriores, me podrias ayudar a hacer el codigo, es decir, a recorrer el checkbox seleccion[] ( el que contiene los videos ) y en el trozo donde le digo...
Código PHP:
if (isset($_POST['button'])){
      foreach (
$_POST['seleccion'] as $Nombre){
        
$lista "lista.m3u";
        
$bat="prueba.bat";
        
$fpL fopen($lista"a");
        
$fpB fopen($bat"a");
        
$stringL "$Nombre\r\n";
        
$stringB="copy $Nombre DireccionIP \r\n";
         
$writeL fputs($fpL,$stringL);
         
$writeB fputs($fpB,$stringB);
         
fclose($fpL);
        }    

en el copy $Nombre DireccionIP (aqui meterle la direccion IP de la tienda que ha seleccionado)
para hacer esto me podrias ayudar? esque no soy capaz
Asi aunque sea para salir del paso, mientras pienso en como hacer esto mejor.
Un saludo, masterojitos
  #14 (permalink)  
Antiguo 30/12/2009, 00:03
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Problema con el uso de varios checkbox

aya..... haber en el primer archivo tu checkbox deberia ser algo asi:
Código PHP:
Ver original
  1. <input type="checkbox" name="checkbox[<?php echo $row_rs_tiendas['DireccionIP']; ?>]" value="<?php echo $row_rs_tiendas['nombre']; ?>"/>

luego en el archivo donde se envia el submit, creo que es "parrila_videos".

ps ahi pon un codigo para almacenar tanto el nombre y la ip.
Código PHP:
Ver original
  1. <?php
  2. foreach($_POST['checkbox'] as $k => $v){
  3.     $nombre = $v;
  4.     $ip = $k;
  5. }
  6. ?>

luego en el formulario agregas dos input de tipo hidden para mandarlos al siguiente archivo donde creas los archivos.
Código PHP:
Ver original
  1. <input type="hidden" name="nombre" value="<?php echo $nombre; ?>" />
  2. <input type="hidden" name="ip" value="<?php echo $ip; ?>" />

y tu input seleccion deberia ser:
Código PHP:
Ver original
  1. <input type="checkbox" name="seleccion[]" value="<?php echo $row_rs_videos['Nombre']; ?>" />

por ultimo, en el ultimo archivo, donde creas los txt, tu codigo quedaria asi:
Código php:
Ver original
  1. <?php
  2. if (isset($_POST['button'])){
  3.     foreach ($_POST['seleccion'] as $nombretienda){
  4.         $lista = "lista.m3u";
  5.         $bat="prueba.bat";
  6.         $fpL = fopen($lista, "a");
  7.         $fpB = fopen($bat, "a");
  8.         $stringL = "$nombretienda\r\n";
  9.         $stringB= "copy $nombretienda // ".$_POST['ip']."/".$_POST['nombre']."\r\n";
  10.         $writeL = fputs($fpL, $stringL);
  11.         $writeB = fputs($fpB, $stringB);
  12.         fclose($fpL);
  13.         fclose($fpB);
  14.     }    
  15. }
  16. ?>

y te deberia salir todo bien....

bueno espero ese karma por el empeño...... haha

Suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #15 (permalink)  
Antiguo 30/12/2009, 05:51
 
Fecha de Ingreso: noviembre-2009
Ubicación: Abadiño
Mensajes: 21
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema con el uso de varios checkbox

Muchas gracias tio, he aprendido bastante, es lo que necesitaba.

Aun así, en el explorador me indica este mensaje de error;

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\mis_sitios\proyecto\parrilla_video s.php on line 145

Y creo que el foreach() esta bien picado...
Aun así, me genera bien el archivo y todo ba bien de momento...aunque no es muy agradable que se vea ese mensaje ahi, pero weno funcionar funciona OK.

Tengo 0 puntos de karma, si tuviera te daria, ya que me has ayudado a entender un poco mas el PHP :D

Gracias de nuevo, feliz año
Nus vemos pronto ;P
  #16 (permalink)  
Antiguo 30/12/2009, 13:17
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Problema con el uso de varios checkbox

Hola, que bueno que te haya servido......

sabes ese error sale cuando la variable recorrido, en este caso "checkbox", viene vacia y por lo tanto no tiene que recorrer, por lo que lo soluciones validando que existan elementos que recorrer.

Código PHP:
Ver original
  1. <?php
  2. if(count($_POST['checkbox']) > 0){
  3.     foreach($_POST['checkbox'] as $k => $v){
  4.         $nombre = $v;
  5.         $ip = $k;
  6.     }
  7. }
  8. ?>

Bueno, suerte ps......

a por cierto.

Feliz Año Nuevo....... ^^
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #17 (permalink)  
Antiguo 30/12/2009, 13:22
 
Fecha de Ingreso: noviembre-2009
Ubicación: Abadiño
Mensajes: 21
Antigüedad: 14 años, 5 meses
Puntos: 0
OK pues ya esta todo listo, muchas gracias :D

Hola de nuevo, tengo un pequeño problemilla, que tiene relacion con lo anterior.

Recordemos, que tenia un formulario, parrilla_tiendas.php en el que seleccionabamos la tienda que nos interesaba.
Código HTML:
<input type="checkbox" name="checkbox[<?php echo $row_rs_tiendas['DireccionIP']; ?>]" value="<?php echo $row_rs_tiendas['nombre']; ?>"/> 
Le dabamosa enviar y esa informacion la tratabamos en la pagina parrilla_videos.php
En esta otra pagina, tenemos otro checkbox que seleccionamos el video(s) y dandole a aceptar, creabamos un fichero de texto.
Código HTML:
<input type="checkbox" name="seleccion[]" value="<?php echo $row_rs_videos['Nombre']; ?>" /> 
Lo que ahora quiero hacer es, he creado una tabla que se llama parrilla que tiene los campos IdTienda (int) y NVideo (varchar), y lo que quiero hacer es almacenar en esa tabla los datos que he seleccionado desde los checkboxes anteriores, es decir, del 1º checkbox coger el dato IdTienda y del segundo el nombre del video, lo que no consigo es sacar del 1º checkbox el IdTienda y guardarlo para luego poder usarlo.


No se si me explicado bien, un saludo.

Última edición por GatorV; 05/01/2010 a las 19:20
  #18 (permalink)  
Antiguo 04/01/2010, 15:25
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Problema con el uso de varios checkbox

lo mejor que puedes hacer es cambiar tu checkbox:

lo siguiente:
Código PHP:
Ver original
  1. <input type="checkbox" name="checkbox[<?php echo $row_rs_tiendas['DireccionIP']; ?>]" value="<?php echo $row_rs_tiendas['nombre']; ?>"/>
por:
Código php:
Ver original
  1. <input type="checkbox" name="checkbox[]" value="<?php echo $row_rs_tiendas['id]; ?>"/>

entonces el valor de ese check es el id. con este ya puedes guardarlo en tu tabla........
y si deseas aun generar archivos o realizar alguna logica y necesitas de la direccion ip o del nombre, ps haces un select con el respectivo id y lo obtienes.

Suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #19 (permalink)  
Antiguo 04/01/2010, 18:16
 
Fecha de Ingreso: noviembre-2009
Ubicación: Abadiño
Mensajes: 21
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema con el uso de varios checkbox

He puesto el checkbox como me dijiste, y para poder sacar la direccionIP de la tienda seleccionado he intentado hacerlo de la siguiente forma:
Código PHP:
if (is_array($_POST['checkbox'])){
    foreach(
$_POST['checkbox'] as $dirIP){
        
$ip $dirIP;
    }
}
mysql_select_db($database_conexion_romoIP$conexion_romoIP);
$query_rs_IP "SELECT * FROM tiendas WHERE IdTienda = $ip";
$rs_IP mysql_query($query_rs_IP$conexion_romoIP) or die(mysql_error());
$row_rs_IP mysql_fetch_assoc($rs_IP);
$totalRows_rs_IP mysql_num_rows($rs_IP);
?> 
Y la coge bien, porque si pongo :
Código PHP:
<?php echo $row_rs_IP['Nombre']; ?>
me muestra el nombre de la tienda escogida, pero cundo le doy al boton de enviar de la pagina de parrilla_videos.php me salta este error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
He hecho pruebas para ver de donde podia venir el error, y biene de la consulta, porque sin ella no da el error.
A ver si sabes porque puede ser...
  #20 (permalink)  
Antiguo 05/01/2010, 10:54
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Problema con el uso de varios checkbox

y pasaste el $ip como un input hidden al parrila_videos.php ??
ademas tu $ip siempre va ser el ultimo checkbox seleccionado (tenlo en cuenta).

mas que todo creo que el error, es por que no pasas los valores.
prueba haciendo un hecho al select.
echo $query_rs_IP;
y lo testeas en el mysql.

Suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #21 (permalink)  
Antiguo 05/01/2010, 17:10
 
Fecha de Ingreso: noviembre-2009
Ubicación: Abadiño
Mensajes: 21
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema con el uso de varios checkbox

Wenas consultando un poco por la web, alfina lo he podido hacer de esta forma:
Código PHP:
if(!empty($_POST['checkbox'])) {
$aLista=$_POST['checkbox'];
mysql_select_db($database_conexion_romoIP$conexion_romoIP);
$query_ver_IP "SELECT * FROM tiendas where IdTienda IN (".implode(',',$aLista).")";
$ver_IP mysql_query($query_ver_IP$conexion_romoIP) or die(mysql_error());
$row_ver_IP mysql_fetch_assoc($ver_IP);
$totalRows_ver_IP mysql_num_rows($ver_IP);

Aunque el IdTienda siempre va a ser un unico valor, pero bueno asi me ha funcionado.

Pero ahora, me encuentro con otro problema, soluciono uno y fastidio otro
Para generar los archivos utilizo este codigo:
Código PHP:
<?php
if (isset($_POST['aceptar'])){
    
$bat="tienda_".$row_ver_IP['Nombre'].".bat";
    
$txt="ftp_".$row_ver_IP['Nombre'].".txt";
    
$fpBat fopen($bat"w");
    
$fpTxt fopen($txt"w");
    
$string1Bat="ftp -s:ftp_".$row_ver_IP['Nombre'].".txt";
    
$writeBat fputs($fpBat$string1Bat);
    
$string1Txt="open ".$row_ver_IP['DireccionIP']."\r\n";
    
$writeTxt fputs($fpTxt$string1Txt);
    
$string2Txt="geexbox\r\n";
    
$writeTxt fputs($fpTxt$string2Txt);
    
$string3Txt="ftp\r\n";
    
$writeTxt fputs($fpTxt$string3Txt);
    
$string4Txt="binary\r\n";
    
$writeTxt fputs($fpTxt$string4Txt);
    
$string5Txt="cd /mnt/\"SATA #1 Disk GEEXBOX (1)/GEEXBOX\"/videos/\r\n";
    
$writeTxt fputs($fpTxt$string5Txt);
    
$string6Txt="lcd c:\\videos\r\n";
    
$writeTxt fputs($fpTxt$string6Txt);
    if(!empty(
$_POST['seleccion'])) {
        foreach (
$_POST['seleccion'] as $nombrevideo){
            
$string7Txt="put $nombrevideo\r\n";
            
$writeTxt fputs($fpTxt$string7Txt);
        } 
    
fclose($fpTxt);
    
fclose($fpBat);
    } 

}
?>
pero resulta que las lineas con informacion del 1º checkbox no las ejecuta:
Código PHP:
$bat="tienda_".$row_ver_IP['Nombre'].".bat";
$txt="ftp_".$row_ver_IP['Nombre'].".txt";
$string1Txt="open ".$row_ver_IP['DireccionIP']."\r\n"
lo que me genera es lo siguiente:
archivo txt:
open (aqui deberia ir la IP de la tienda seleccionada)
geexbox
ftp
binary
cd /mnt/"SATA #1 Disk GEEXBOX (1)/GEEXBOX"/videos/
lcd c:\videos
put video_seleccionado


Posiblemente sea porque no hago bien lo de los input hidden, a ver si me puedes ayudar en este tema. Intento enviar la direccion IP de la siguiente forma, no se si estara bien hecho, no creo:
Código PHP:
<?php
if (is_array($_POST['checkbox'])){
    foreach(
$_POST['checkbox'] as $ip){
        
$dirIP $ip;
    }
}
?>
<input name="dirip" type="hidden" value="<?php echo $dirIP?>" />
A ver si me puedes echar una mano para hacer esta parte, un saludo.

Última edición por mendekua; 05/01/2010 a las 17:21
  #22 (permalink)  
Antiguo 05/01/2010, 17:50
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Problema con el uso de varios checkbox

<?php
if (is_array($_POST['checkbox'])){
foreach($_POST['checkbox'] as $ip){
$dirIP = $ip;
}
}
?>
<input name="dirip" type="hidden" value="<?php echo $_POST['checkbox']; ?>" />
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #23 (permalink)  
Antiguo 06/01/2010, 04:31
 
Fecha de Ingreso: noviembre-2009
Ubicación: Abadiño
Mensajes: 21
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema con el uso de varios checkbox

He puesto como me has dicho;
Código HTML:
<input name="dirip" type="hidden" value="<?php echo $_POST['checkbox']; ?>" /> 
pero sigue sin funcionar, estas lineas no las coge;
Código PHP:
$bat="tienda_".$_POST['dirip'].".bat";
$txt="ftp_".$row_ver_IP['Nombre'].".txt";
...
$string1Txt="open ".$_POST['dirip']."\r\n"
Si pongo así $bat="tienda_".$_POST['dirip'].".bat"; para que me escriba la IP me crea el bat de la siuiente forma:
tienda_array.bat
Y si pongo de la otra forma;
$bat="tienda_".$row_ver_IP['Nombre'].".bat"; para que ponga el nombre de la tienda, no me escribe nada, crea el bat así;
tienda_.bat

Que puede ser?
  #24 (permalink)  
Antiguo 06/01/2010, 08:46
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Problema con el uso de varios checkbox

tienes que volver a recorrer el checkbox........
osea en el otro archivo lo vuelves a recorrer:
<?php
if (is_array($_POST['checkbox'])){
foreach($_POST['checkbox'] as $ip){
$dirIP = $ip;
}
}
?>


Suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #25 (permalink)  
Antiguo 06/01/2010, 14:26
 
Fecha de Ingreso: noviembre-2009
Ubicación: Abadiño
Mensajes: 21
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema con el uso de varios checkbox

A ver, el checkbox lo recorro en parrilla_videos.php
Código PHP:
<?php
if (is_array($_POST['checkbox'])){
    foreach(
$_POST['checkbox'] as $ip){
        
$dirIP $ip;
    }
}
?>
y luego pongo el hidden
Código HTML:
<input name="dirip" type="hidden" value="<?php echo $_POST['checkbox']; ?>" /> 
le doy al boton de aceptar del formulario parrilla_videos.php y deberia de hacer todo el codigo:
Código PHP:
<?php
if (isset($_POST['aceptar'])){
    
$bat="tienda_".$row_ver_IP['Nombre'].".bat";
    
$txt="ftp_".$row_ver_IP['Nombre'].".txt";
    
$fpBat fopen($bat"a");
    
$fpTxt fopen($txt"a");
    
$string1Bat="ftp -s:ftp_".$row_ver_IP['Nombre'].".txt";
    
$writeBat fputs($fpBat$string1Bat);
    
$string1Txt="open ".$_POST['$dirip']."\r\n";
....
pero sigue sin hacerlo, el checkbox esta recorrido, nose, y si en vez de poner:
if (isset($_POST['aceptar'])){
pongo
if (isset($_POST['enviar'])){ que es el button del formulario parrilla_tiendas.php
me hace todo bien , pero no hace el codigo;
if(!empty($_POST['seleccion'])) {
foreach ($_POST['seleccion'] as $nombrevideo){
$string7Txt="put $nombrevideo\r\n";
$writeTxt = fputs($fpTxt, $string7Txt);
}
}

y ya no se que hacer.
Saludos
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 23:13.