Foros del Web » Programando para Internet » Javascript »

Generador de posts con javasript

Estas en el tema de Generador de posts con javasript en el foro de Javascript en Foros del Web. Buenos días, estoy haciendo un generador de posts php con html5+css3+js la estructura del html, es la siguiente: Tengo dos opciones, (son tipo radio) al ...
  #1 (permalink)  
Antiguo 05/09/2013, 02:44
 
Fecha de Ingreso: septiembre-2013
Mensajes: 3
Antigüedad: 11 años, 3 meses
Puntos: 0
Pregunta Generador de posts con javasript

Buenos días, estoy haciendo un generador de posts php con html5+css3+js la estructura del html, es la siguiente:

Tengo dos opciones, (son tipo radio) al hace click en una de ellas, se cambia con js de display:none a block un div con nuevas opciones

El esquema se repite con este bloque, según la opcion que se escoja, aparece un generador u otro cambiando none a block, según el radio que sea seleccionado

(por ejemplo, uno de peliculas, o uno de series, uno de juegos)

En cada generador hay distintos campos la gran mayoría de este estilo

Código HTML:
Ver original
  1. <div class="portada">Portada Película: * <input class="muylargo" id="portada" type="url" placeholder="http://www.url.com"></div>

y luego al final de cada generador tengo

Código HTML:
Ver original
  1. <input type="button" class="boton2" onclick="postpel()" value="Generar Post"><br><br>
  2. <p class="texto">Copia el contenido del cuadro que está debajo en el post del foro</p>
  3. <textarea name="gen2" cols="100" rows="20" id="gen2" onclick="javascript:formulario.gen.focus();formulario.gen.select();">Post No Generado</textarea

Al hace click, se lee el contenido de los input, se le añaden algunos bbcode ([img] [spoiler] [b]...) y se muestra todo en el textarea de nombre gen2

El problema viene cuanto intento hacer el código js lo mas "apretadito" posible para que el código sea lo mas pequeño posible...

si en todos los generadores, pongo el mismo id para el input "portada" luego en el js al hacer lo siguiente:

Código Javascript:
Ver original
  1. if (document.getElementById("portada").value != ""){
  2.         txt = "";
  3.         txt += "[rimg]";
  4.         txt += document.getElementById("portada").value;
  5.         txt += "[/rimg]";
  6.         document.getElementById("gen2").value += txt;
  7.     }


Aunque yo haya escrito en series, como películas está antes, (y ambos input tienen el mismo id) lo toma como vacío y no escribe nada... tengo que cambiar el id del input a "portada1" "portada2" y duplicar el if en el js....

Me gustaría saber si hay alguna forma de evitar esto, no tengo muchos conocimientos de js, voy aprendiendo poco a poco...

Quisiera una forma de poder llamar a todos los input portada con el id="portada" y que el js busque no solo en el primero, sino en el generador que está seleccionado, ademas de seleccionar el textarea que aparece con el generador

os pongo un enlace de google drive al generador, por si mi explicación no ha sido muy precisa:

https://googledrive.com/host/0B4CJd_I89bvVNmJoR1VQZlJ2WXc/nuevo.html

gracias, un saludo

Última edición por tdguchi; 05/09/2013 a las 03:23 Razón: Añadir highlights
  #2 (permalink)  
Antiguo 05/09/2013, 04:31
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Generador de posts con javasript

lo primero que has de hacer, es no repetir las "ids". en su lugar puedes usar los atributos (name o class). personalmente prefiero "class". para obtener todos los controles con un class determinado, usa el método querySelectorAll('.selector'). éste te genera un array con todos los controles que tengan ese class. a partir de ahí, accedes a cada control por su indice en el array
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 05/09/2013, 06:12
 
Fecha de Ingreso: septiembre-2013
Mensajes: 3
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Generador de posts con javasript

El problema es que las class ya las uso para dar estilos con css (por lo que habría mas de 1 campo con la misma class) y entonces no serviría..... en cuanto al atributo "name" según la especificación, un div no puede tener "name" .... por lo que solo tengo id... y tal y como dices, no es recomendable repetir ids....
  #4 (permalink)  
Antiguo 05/09/2013, 07:30
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Generador de posts con javasript

no me refería a los bloques, sino a los controles
Cita:
<input class="muylargo" id="portada" type="url" placeholder="http://www.url.com">
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #5 (permalink)  
Antiguo 07/09/2013, 12:10
 
Fecha de Ingreso: septiembre-2013
Mensajes: 3
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Generador de posts con javasript

los controles son iguales en todos los casos, no puedo "diferenciar" uno de otro, ya que hay muchos de class=largo o class=muylargo....

De todos modos he encontrado que es preferible meter algo de php en el código.... gracias por tu ayuda

Etiquetas: generador, hide, html5, js, show
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 20:26.