Estoy programando en php y javascript y tengo una duda:
A ver, para la creación de determinados inputs uso javascript porque no sé cuántos inputs va a necesitar el usuario (por ejemplo, para añadir las titulaciones de un profesor, a priori no sabemos cuántas son, entonces mediante javascript el usuario pulsa en el botón 'añadir titulación' y se añade). A continuación muetro el código para crear las titulaciones de un profesor:
Código:
He mostrado el código javascript, ahora muestro el código php desde el que lo llamo:<script type="text/javascript"> num=0; function crear(obj) { num++; fi = document.getElementById('fiel'); // 1 contenedor = document.createElement('div'); // 2 contenedor.id = 'div'+num; // 3 fi.appendChild(contenedor); // 4 ele = document.createElement('input'); // 5 ele.type = 'text'; // 6 ele.name = 'text'+num; // 6 ele.size = '40'; contenedor.appendChild(ele); // 7 ele = document.createElement('input'); // 5 ele.type = 'button'; // 6 ele.value = 'Borrar'; // 8 ele.name = 'div'+num; // 8 ele.onclick = function () {borrar(this.name)} // 9 contenedor.appendChild(ele); // 7 } function borrar(obj) { fi = document.getElementById('fiel'); // 1 fi.removeChild(document.getElementById(obj)); // 10 } </script>
Código:
<h2>Nombre de la nueva titulación</h2> <fieldset id="fiel"> <input type="button" value="Añadir titulación" onclick="crear(this)"> </fieldset>
Y esto me funciona bien, consigo crear al profesor con el número de titulaciones que quiera el usuario.
Pero el problema viene cuando se quiere modificar a ese profesor, y entonces aparecen las titulaciones que tenía, pero no se pueden añadir más poque no consigo hacerlo de forma dinámica:
Código:
<strong>Titulaciones del profesor</strong> <br><br>'; echo' <fieldset id="fiel1">'; echo " <script type='text/javascript'> num1=0; num1++; fi = document.getElementById('fiel1'); contenedor = document.createElement('div1'); contenedor.id = 'div1'+num1; fi.appendChild(contenedor); "; while ($fila1= mysql_fetch_assoc($result1)){ echo" ele = document.createElement('input'); ele.type = 'text'; ele.name = 'titulacion'+num1; "; echo"ele.value='".$fila1['nombreTitulacion']."';"; echo" ele.size = '40'; contenedor.appendChild(ele);"; } echo" ele = document.createElement('input'); ele.type = 'button'; ele.value = 'Borrar'; ele.name = 'div1'+num1; ele.onclick = function () {borrar1(this.name)} contenedor.appendChild(ele); // 7 } </script> "; echo' </fieldset>'; echo' <fieldset id="fiel"> <input type="button" value="Añadir titulación" onclick="crear(this)"> </fieldset>';
Sé que este último código está mal porque javascript se ejecuta del lado del cliente y php del lado del servidor, pero ¿qué forma hay de hacer esto? Ya llevo mucho tiempo estancado aqui y no sé como seguir, si me puediéseis ayudar...
Muchas gracias