Foros del Web » Programando para Internet » Javascript »

Añadir campos a un formulario con PHP

Estas en el tema de Añadir campos a un formulario con PHP en el foro de Javascript en Foros del Web. Hola tengo un problemilla. yo tengo ésto: Y quiero que al darle a añadir imagen me cree tantos campos file como le digo.Tendría que ser ...
  #1 (permalink)  
Antiguo 01/03/2011, 12:32
 
Fecha de Ingreso: febrero-2011
Mensajes: 83
Antigüedad: 13 años, 8 meses
Puntos: 0
Añadir campos a un formulario con PHP

Hola tengo un problemilla.

yo tengo ésto:



Y quiero que al darle a añadir imagen me cree tantos campos file como le digo.Tendría que ser en la misma página.

Alguna sugerencia?
  #2 (permalink)  
Antiguo 01/03/2011, 12:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Tema movido desde PHP a Javascript
  #3 (permalink)  
Antiguo 01/03/2011, 14:11
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años, 5 meses
Puntos: 79
Respuesta: Añadir campos a un formulario con PHP

ejemplo --> http://perr0.netii.net/exs/subir/s.php

Hola, esto hice un codigo sencillo, solo copy paste
recuerda darle permiso 777 a tu carpeta en tu pagina

lo probe en IE y Opera, debiera funcionar en el resto

salu2

Código HTML:
Ver original
  1. function elemento_file(x){
  2.     var divele=document.getElementById("elementos");
  3.     var f=document.getElementsByTagName("div").item(0);
  4.     if(x==1){
  5.         if(f.lastChild){
  6.             divele.removeChild(f.lastChild);
  7.             divele.removeChild(f.lastChild);
  8.         }
  9.     } else {
  10.         salto=document.createElement("br");
  11.         ele=document.createElement("input");
  12.         ele.type="file";
  13.         ele.name="mielemento[]";
  14.         divele.appendChild(ele);
  15.         divele.appendChild(salto);
  16.     }
  17. }
  18. <?
  19. if($_FILES["mielemento"]){
  20.     foreach ($_FILES["mielemento"]["error"] as $clave => $error) {
  21.         if ($error == UPLOAD_ERR_OK) {
  22.             $nombre_tmp = $_FILES["mielemento"]["tmp_name"][$clave];
  23.             $nombre = $_FILES["mielemento"]["name"][$clave];
  24.             if(move_uploaded_file($nombre_tmp, "$nombre")) echo "subido: $nombre<br>";
  25.         }
  26.     }
  27. }
  28. ?>
  29.  
  30. <form enctype="multipart/form-data" method="post">
  31. <input type="button" value="A&ntilde;adir" onClick="elemento_file(0)">
  32. <input type="button" value="Quitar"onClick="elemento_file(1)">
  33. <div id="elementos"></div><p>
  34. <input type="submit" value="enviar">
  35. </form>
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip

Última edición por Perr0; 01/03/2011 a las 14:36
  #4 (permalink)  
Antiguo 01/03/2011, 14:37
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años, 5 meses
Puntos: 79
Respuesta: Añadir campos a un formulario con PHP

te dejo la página del ejemplo
y el código mas arriba

http://perr0.netii.net/exs/subir/s.php

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #5 (permalink)  
Antiguo 01/03/2011, 15:14
 
Fecha de Ingreso: febrero-2011
Mensajes: 83
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Añadir campos a un formulario con PHP

Perr0 un millón de gracias!

Funciona bien menos el botón de quitar, he estado mirando pero no he estudiado javascript y no se dónde puede estar el error.

Gracias.
  #6 (permalink)  
Antiguo 02/03/2011, 04:17
 
Fecha de Ingreso: febrero-2011
Mensajes: 83
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Añadir campos a un formulario con PHP

¿Cómo hago para que me pase los resultados de cada file que me crea a otro PHP?
  #7 (permalink)  
Antiguo 02/03/2011, 06:17
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años, 5 meses
Puntos: 79
Respuesta: Añadir campos a un formulario con PHP

el boton quitar funciona bien (no entender), si quieres cargar en otra paginaç

agregas en el tag de form action="otrapagina.php"

luego en esa página colocas este codigo

Código PHP:
Ver original
  1. if($_FILES["mielemento"]){
  2.     foreach ($_FILES["mielemento"]["error"] as $clave => $error) {
  3.         if ($error == UPLOAD_ERR_OK) {
  4.             $nombre_tmp = $_FILES["mielemento"]["tmp_name"][$clave];
  5.             $nombre = $_FILES["mielemento"]["name"][$clave];
  6.             if(move_uploaded_file($nombre_tmp, "$nombre")) echo "subido: $nombre<br>";
  7.         }
  8.     }
  9. }

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #8 (permalink)  
Antiguo 02/03/2011, 11:12
 
Fecha de Ingreso: febrero-2011
Mensajes: 83
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Añadir campos a un formulario con PHP

solo tenía que poner el código en un PHP. Vaya.

Si pongo echo $nombre me sale solo el nombre del último archivo. Cosa que al subir a la base de datos el campo imagen con el valor $nombre solo me pone la última imagen que he seleccionado. ¿cómo puedo hacer para que me coja todos los nombres?
  #9 (permalink)  
Antiguo 02/03/2011, 11:26
 
Fecha de Ingreso: febrero-2011
Mensajes: 83
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Añadir campos a un formulario con PHP

Cita:
Iniciado por Seisler Ver Mensaje
solo tenía que poner el código en un PHP. Vaya.

Si pongo echo $nombre me sale solo el nombre del último archivo. Cosa que al subir a la base de datos el campo imagen con el valor $nombre solo me pone la última imagen que he seleccionado. ¿cómo puedo hacer para que me coja todos los nombres?
O también ir subiendo foto a foto cada una en un campo de la tabla ejemplo:

subo 2 fotos: foto1.jpg y foto2.jpg.


En la BBDD

id_foto proyecto foto

1 4 foto1.jpg
2 4 foto2.jpg


¿como se haría eso?

Ahora mismo solo me sube la última foto.

Un saludo
  #10 (permalink)  
Antiguo 02/03/2011, 11:29
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años, 5 meses
Puntos: 79
Respuesta: Añadir campos a un formulario con PHP

coloca tu código o la página...porque mi bola de cristal esta dañada xD
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #11 (permalink)  
Antiguo 02/03/2011, 11:42
 
Fecha de Ingreso: febrero-2011
Mensajes: 83
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Añadir campos a un formulario con PHP

Mira he puesto lo que me has dicho al php que sube las fotos a la BBDD.

lo intento hacer así:




Lo que pasa es que ésto solo me sube a la BBDD la última foto que agregué, y agregué 4.

entonces a la bbdd solo me sale

id_foto = 1
proyecto = 4 (ésto es un ejemplo ya que aún no lo he configurado)
foto = foto4.jpg

entonces las fotos 1,2 y 3. No se suben a la BBDD

Siento que sea tan cateto. Mi nivel es bastante pobre. Pero intento aprender.

Un saludo
  #12 (permalink)  
Antiguo 02/03/2011, 11:59
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años, 5 meses
Puntos: 79
Respuesta: Añadir campos a un formulario con PHP

ahora si

EASY



salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #13 (permalink)  
Antiguo 02/03/2011, 12:28
 
Fecha de Ingreso: febrero-2011
Mensajes: 83
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Añadir campos a un formulario con PHP

Funciona! eres un grande! ahora solo me queda arreglar una pequeña cosa y es el botón de borrar, te aseguro que a mi no me funciona.

Otra cosa es que si por ejemplo hago ésto:





Como ves dejo las dos últimas vacías. Sea por lo que sea. En mi caso es porque no puedo quitar campos.

Entonces en la base de datos me agrega filas y las rellena con la última foto que he subido:

id_foto = 0
proyecto = 4
foto = foto1

id_foto = 1
proyecto = 4
foto = foto2

id_foto = 2
proyecto = 4
foto = foto2

id_foto = 3
proyecto = 4
foto = foto2

Gracias de nuevo
  #14 (permalink)  
Antiguo 02/03/2011, 12:31
 
Fecha de Ingreso: febrero-2011
Mensajes: 83
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Añadir campos a un formulario con PHP

Aquí dejo mi script para ver si ves algo por lo cual no me funcione el botón de borrar:



Código Javascript:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5.  
  6. <title>Untitled Document</title>
  7.  
  8. <link href="file:///C|/DOCUME~1/MARKSC~1/CONFIG~1/css/caleidoscopioprov.css" rel="stylesheet" type="text/css" media="screen" />
  9. <link href="file:///C|OCUME~1/MARKSC~1/CONFIG~1/imagenes/favicon.gif" rel="icon" />
  10. <link href="file:///C|/DOCUME~1/MARKSC~1/CONFIG~1/imagenes/favicon.gif" rel="shortcut icon" type="image/x-icon" />
  11.  
  12. <meta name="keywords" content="caleidoscopio studio, diseo, design, estudio, barcelona, grafico, museo reina sofia, lorena dorta, marta juan, print design, books, salerm, esec, business school, art direction, efren alvarez, davis lisboa, centro de arte santa monica, madrid, art, caleidoscopiostudio.blogspot.com" />
  13. <meta name="description" content="Caleidoscopio Studio is a design team based in Barcelona. We develope art direction projects, video and graphic works, illustrations and all creative ideas that you need." />
  14. <meta name="copyright" content="Copyright (c) 2011 Caleidoscopio Studio" />
  15.  
  16.  
  17.  
  18. <script language="JavaScript" type="text/javascript">
  19.  
  20. function elemento_file(x){
  21.     var divele=document.getElementById("elementos");
  22.     var f=document.getElementsByTagName("div").item(0);
  23.     if(x==1){
  24.         if(f.lastChild){
  25.             divele.removeChild(f.lastChild);
  26.             divele.removeChild(f.lastChild);
  27.         }
  28.     } else {
  29.         salto=document.createElement("br");
  30.         ele=document.createElement("input");
  31.         ele.type="file";
  32.         ele.name="mielemento[]";
  33.         divele.appendChild(ele);
  34.         divele.appendChild(salto);
  35.     }
  36. }
  37. </script>
  38.  
  39. <link href="../css/caleidoscopioprov.css" rel="stylesheet" type="text/css" />
  40.  
  41.  
  42.  
  43. </head>
  44.  
  45. <body>
  46.  
  47. <!-- Contenedor -->
  48. <div id="contenedor">
  49.  
  50. <!-- Cabecera -->
  51.     <div id="cap">
  52.         <a href="">
  53.         <img  src="images/logo.gif" alt="Logo Caleidoscopio Studio" />
  54.         </a>
  55.     </div>
  56.  
  57. <!-- /Cabecera -->
  58. <!-- Separador -->
  59. <div>
  60.       <img src="images/separador.gif" />
  61.     </div>
  62. <!-- /Separador -->
  63.  
  64. <!-- Menu -->
  65.     <div id="menu">
  66.     <span class="izquierda">
  67.       <ul>
  68.             <li><a class="btn_menu" href="" title="elemento menu">estudio</a></li>
  69.             <li><a class="btn_menu" href="" title="elemento menu"> servicios</a></li>
  70.             <li><a class="btn_menu" href="" title="elemento menu">proyectos</a></li>
  71.             <li><a class="btn_menu" href="" title="elemento menu">personal-works</a></li>
  72.             <li><a href="" title="elemento menu" class="btn_menu">contacto</a></li>
  73.            
  74.         </ul>
  75.     </span>
  76.     <span class="derecha">
  77.     <ul>
  78.              <li><a href="http://caleidoscopiostudio.blogspot.com" title="elemento menu" target="_blank" class="btn_menu">blog</a></li>
  79.     </ul>
  80.     </span>
  81.   </div>
  82. <!-- /Menu -->
  83. <!-- Separador -->
  84. <div >
  85.       <img src="images/separador.gif" />
  86.     </div>
  87. <!-- /Separador -->
  88.  
  89. <!-- Contenido principal -->
  90.    
  91.     <div id="principal">
  92.    
  93.     <?php
  94.     if($_FILES["mielemento"]){
  95.     foreach ($_FILES["mielemento"]["error"] as $clave => $error) {
  96.         if ($error == UPLOAD_ERR_OK) {
  97.             $nombre_tmp = $_FILES["mielemento"]["tmp_name"][$clave];
  98.             $nombre = $_FILES["mielemento"]["name"][$clave];
  99.             if(move_uploaded_file($nombre_tmp, "$nombre")) echo "subido: $nombre<br>";
  100.         }
  101.     }
  102. }
  103.     ?>
  104.    
  105.    
  106.     <form  enctype="multipart/form-data" action="conjava.php" method="post">
  107.     <input type="button" value="A&ntilde;adir" onClick="elemento_file(0)">
  108.     <input type="button" value="Quitar" onClick="elemento_file(1)">
  109.     <div id="elementos"> </div><p>
  110.     <input type="submit" value="enviar">
  111.     </form>
  112.                
  113.    
  114.    
  115.    
  116.    
  117.        
  118.        
  119.     </div>
  120. <!-- Separador -->
  121.     <div id="separador" class="espaciosup">
  122.       <img src="images/separador.gif" />
  123.     </div>
  124.  
  125. </body>
  #15 (permalink)  
Antiguo 02/03/2011, 13:27
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años, 5 meses
Puntos: 79
Respuesta: Añadir campos a un formulario con PHP

ya se
mira
yo puse codigo de mas, no me dedico mucho a depurar salvo al final
y tu modificaste algo

es simple

donde esta el <script></script>

elimina la linea que dice
var f=document.getElementsByTagName("div").item(0);

y reemplaza estas tres f

Código Javascript:
Ver original
  1. if(f.lastChild){
  2.   f.removeChild(divele.lastChild);
  3.   f.removeChild(divele.lastChild);

por divele

Código Javascript:
Ver original
  1. if(divele.lastChild){
  2.   divele.removeChild(divele.lastChild);
  3.   divele.removeChild(divele.lastChild);

saludos y ahora debiera estar ok
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #16 (permalink)  
Antiguo 02/03/2011, 13:44
 
Fecha de Ingreso: febrero-2011
Mensajes: 83
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Añadir campos a un formulario con PHP

Buala! ya funciona todo. Eres un crac! espero algún día llegar a tu nivel.

Saludos campeón.XD
  #17 (permalink)  
Antiguo 23/04/2011, 11:46
 
Fecha de Ingreso: febrero-2011
Mensajes: 83
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Añadir campos a un formulario con PHP

Bueno después de un tiempo. He tenido que hacer algo parecido pero en red y no en local. Esto me funcionaba estupendo en local ya que las imágenes y la ruta todo estaba en local. Ahora me viene la duda. Al utilizar este sistema en servidor remoto, el de subir la ruta a la base de datos en vez de la imagen en si (para economizar espacio), al elegir las imágenes, como estas están en el disco duro local no funciona, ya que tendrían que estar en el directorio raíz remoto y por lo tanto antes deberían ser subidas al directorio raíz manualmente. Alguna idea de como se hace ésto?

Etiquetas: añadir, campos, php, formulario
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 03:41.