Hola,
No he conseguido hacer que me funcione lo que me has puesto.
<a href="pagina.php?seleccion=+this.form.elemento_for mulario.value">ordenar</a>
ni
<a href="pagina.php?seleccion=this.form.combo.selecte dIndex">ordenar</a>
No me reemplaza el valor del elemento seleccionado, sino que me pone el link tal cual....
En el otro caso que me pones que es hacer un submit, ese sí me funciona, pero necesitaría pasar otro valor (el de la columna por la que quiero ordenar) en un hidden (se me acaba de ocurrir ahora
) y no lo he probado...
En fin, al final he rebuscado en el foro de Javascript (cosa que debería haber hecho antes de preguntar...) y he encontrado una solución. Os la pongo aquí por si a alguien le puede interesar. Al final he aislado el problema y lo he dejado en una página muy simple con un select y un link que llama a la propia página que recuerda la opción que se seleccionó antes.
combo.php
Código PHP:
<?php
if ($_GET) {
$pasado = $_GET[elegido];
} else {
$pasado = 0;
}
echo <<<BASTA
<html>
<head>
<script type="text/javascript">
<!--
function inicio() {
BASTA;
echo 'document.formulario.combo.options[' . $pasado . '].selected = "true"' . "\n";
echo <<<BASTA
}
function seleccion() {
location.href = "combo.php?elegido=" + document.formulario.combo.selectedIndex;
}
-->
</script>
</head>
<body onload="inicio()">
<form name="formulario">
<select name="combo">
<option value="1">uno</option>
<option value="2">dos</option>
<option value="3">tres</option>
<option value="4">cuatro</option>
</select>
</form>
<a href="#" onclick="seleccion()">refrejcar</a>
</body>
</html>
BASTA;
?>
Realmente hay poquito de php, pero bueno.
El objetivo del script es que, al pulsar sobre un link, pueda llamar a una función de javascript que establezca el link dinámicamente con todos los datos que quiera (en este caso sólo el elemento seleccionado en el select) que hayan cambiado en la página una vez que ya está en el navegador del cliente, o sea, fuera del alcance de php y que no estén en un form.
Voy a explicar un par de líneas:
<a href="#" onclick="seleccion()">refrejcar</a>
De todas las combinaciones que he probado, esta es la única que me ha funcionado. Poniendo en el link directamente la propiedad selectedIndex no funciona. Poniendo href="combo.php", tampoco, ni com href="" (que al final es lo mismo) En esos casos no recogía el link de onclick y se quedaba con el de href que no vale. Supongo que lo de poner # es uno de los mil truquitos que tiene Javascript.
La otra línea es
location.href = "combo.php?elegido=" + document.formulario.combo.selectedIndex;
Puede que sea una tontada, pero me he vuelto loco para ver cómo se cambia la página del explorador sin abrir una ventana nueva ni un pop up. Esas dos cosas las he encontrado por todas partes, hasta el punto de que parece que Javascript sólo vale para abrir pop ups...
En este caso podría haber usado onclick="this.form.submit()", pero la gracia está en que a location.href ahora le puedo añadir lo que quiera.
Pues nada, al final lo he podido solucionar. Muchas gracias por la ayuda. Un saludo