Ver Mensaje Individual
  #4 (permalink)  
Antiguo 30/10/2017, 09:54
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Relacion entre usuarios

Lo del textarea es una buena solución, el problema esta del lado del cliente, y que entienda que el salto de linea separa hijos, se que es algo tal vez tonto, pero tienes que ponerte en los zapatos de el.

Una buena opcion, es a travez de un text input, y con el evento onchange se se llene una lista, ergo borras el valor del text input algo así

Código Javascript:
Ver original
  1. function fillSonsList(list, fill, name){
  2. var filler = document.getElementById(fill);
  3. var val = filler.value;
  4. filler.value = "";
  5.  
  6. var input = document.createElement("input");
  7. input.setAttribute("type", "text"); //text type input to see value
  8. input.setAttribute("value", val); //value of input
  9. input.setAttribute("readonly", ""); //disable input to changes
  10. input.setAttribute("name", name+"[]"); //set array of inputs
  11. input.setAttribute("class", "some-class"); //to add styles i guess?
  12. document.getElementById(list).appendChild(input);    
  13. }

Parametros:
list: el elemento html a llenar
fill: el input con que llenas la lista
name: el nombre que le darás al input para que sea enviado a php

Ejemplo

Código HTML:
Ver original
  1. <input type="text" onchange="fillSonsList('sons-list', this.id, 'sons');" />
  2. <form id="sons-list"></form>

Cual es el chiste de esto?

Que en esta línea
Código Javascript:
Ver original
  1. input.setAttribute("name", name+"[]"); //set array of inputs
Se va agregando inputs así

Código HTML:
Ver original
  1. <input name="foo[]" />
  2. <input name="foo[]" />
  3. <input name="foo[]" />

Y en php obtienes un arreglo de esos foo

Código RETURN:
Ver original
  1. ["foo"] => array(N) { [0]=> "var1" [1]=> "var2" [2]=> "var3", ... , [N-1]=> "varN-1" [N]=> "varN" }

Saludos

P.S: faltaría un botoncito para eliminar un hijo si es mal escrito, pero eso sería tarea para ti si es que te gusta mi propuesta