Muchas gracias, Dec por responder y...¡tan pronto! y...¡en domingo!
Nunca he usado Ajax. (Aunque he oído hablar mucho de él) A lo mejor es más sencillo de lo que me imagino. ¿Tengo entendido que hay que subir algunos scripts a la web? ¿o me confundo con otra cosa?
Bueno, que php se ejecuta en el servidor y JS en el lado del cliente, ya lo sé. Y "combinarlos" no es tarea fácil (y en algunas circunstancias, IMPOSIBLE)
No obstante, hay algunas combinaciones posibles, quizá no recomendables, pero posibles.
Te copio una función, que estoy usando y que funciona correctamente. Y que lo que pretendo hacer es prácticamente lo mismo. Es la función a la que me refería en mi hilo anterior en este foro. Quizá no sea muy elegante, pero funciona.
Código PHP:
<script>
// creamos la matriz
function HazArray()
{
datos = new Array ();
<?php
php
define ('ARCHIVO_DATOS', 'fichero.txt');
if (!file_exists(ARCHIVO_DATOS)) // Aviso si no encuentra el fichero
die ('<pre>no encuentro el fichero "'.ARCHIVO_DATOS.'".</pre>');
$fa2 = file(ARCHIVO_DATOS); // leemos todo el fichero en un array php
if ($fa2 === FALSE) // Aviso si no recibió los datos del fichero
die ('<pre>No pude leer el fichero "'.ARCHIVO_DATOS.'".</pre>');
$size = count($fa2);
for($i=0; $i<$size; $i++)
{
$fa2[$i] = utf8_encode($fa2[$i]);
$text = explode("|",rtrim($fa2[$i]));
?>
datos.push(<?php echo json_encode($text);?>);
<?php
}
?>
}
//El select queda así
<select name="Nombres" size="50" id="Nombres" onChange="Rellenar()" > </select>
// Actualizamos los datos del formulario
function Rellenar()
{
indice = (document.getElementById('Nombres')).selectedIndex;
document.encuesta.item01.value = datos[indice][0];
document.encuesta.item02.value = datos[indice][1];
document.encuesta.item03.value = datos[indice][2];
document.encuesta.item04.value = datos[indice][3];
document.encuesta.item05.value = datos[indice][4];
document.encuesta.item06.value = datos[indice][5];
document.encuesta.item07.value = datos[indice][6];
document.encuesta.item08.value = datos[indice][7];
document.encuesta.item09.value = datos[indice][8];
document.encuesta.MultiText1.value = datos[indice][9];
document.encuesta.MultiText2.value = datos[indice][10];
document.encuesta.MultiText3.value = datos[indice][11];
document.encuesta.email.value = datos[indice][13];
}
</script>
La función a que me refiero es "HazArray()"
Lo que pretendo hacer es usarla con otro nombre de archivo. El problema está en que, no sé por qué no me permite usarla en esta parte del código, para rellenar un array parecido.
Gracias, por tu interés.
Un saludo.