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: Seleccionar todo
<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>
He mostrado el código javascript, ahora muestro el código php desde el que lo llamo:
- Código: Seleccionar todo
<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: Seleccionar todo
<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