LoL pero que le estais contando ....
Primero, los tags <option> no suportan el evento onClick, el tag <select> si lo suporta pero en este caso no seria conveniente. Debería de usar el evento onChange.
Lo de poner un div oculto también es mala idea. Si pones un div oculto, antes de mostrar lo tienes que cambiar su contenido
Código:
var elementId = "divId";
document.getElementById(elementId).style.display = "block";
document.getElementById(elementId).innerHTML = "<img src='....' title='' />";
esto no tiene ningún sentido. La imagen aparecerá de la nada y el user se quedara WTF :D . El DIV tiene que ser visible y lo que hay que cambiar es el src de la imagen
Código:
document.getElementById("ThumbListImageId").src = '....';
Así el usuario sabra que en este Div saldra algo, no cambias el contenido entero del DIV ( lo que en el caso no tiene sentido ) y te salvas 2 linias de codigo:
Código:
var elementId = "divId";
document.getElementById(elementId).style.display = "block";
Así que el código final seria algo así:
Código:
<?php
$dir='images/phocagallery/carnaval2013/thumbs/';
$images = glob("$dir{*.gif,*.jpg,*.png}", GLOB_BRACE);
echo "<div><img src='' id='ThumbImageId' title='' /></div>";
echo'<select size="5" onChange="document.getElementById(\'ThumbImageId\').src = this.value;">';
foreach($images as $v)
{
echo '<option value="'.$v.'">'.$v.'</option>';
}
echo'<select>';
?>
La segunda pregunta si me he enterado bien es que no quiere que salga la ruta completa en el Option sino solo en nombre, eso se puede hacer asi:
Código:
echo '<option value="'.$v.'">' . substr($v, strripos($v, '/') + 1); . '</option>';
Saludos.