Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/10/2008, 10:46
Avatar de Deschamps
Deschamps
 
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 16 años, 6 meses
Puntos: 8
Alternativa en PHP para "onchange"?

Buenas,

Estoy intentando llevar a la práctica las cosas que voy estudiando con PHP y el caso es que me encuentro en un punto en el que ya no sé como continuar: He creado una página sencilla cuyo único propósito es listarme mediante un SELECT en un formulario las tablas que he creado en una base de datos, y mostrar con un simple 'echo' la que seleccione en cada momento.

Para actualizar la página sin necesidad de incluir un botón (<button> ó <input type="submit">) he incluido el método 'onchange' en el SELECT con su correspondiente 'form.submit()' en javascript.

Pero me gustaría saber si existe alguna manera de realizar esta misma operación sin necesidad de incluir código javascript en la página, sólo XHTML y PHP, por lo que si alguien puede orientarme, se lo agradecería.


No sé si es necesario el código, pero lo incluyo por si acaso (simplificado para que resulte más claro seguirlo):

Código PHP:
<?php

    $dbhost 
'localhost';
    
$dbuser 'usuario';
    
$dbpass 'contraseña';
    
$dbname 'basedatos';

    
$conexion mysql_connect$dbhost$dbuser$dbpass );
    
$selectdb mysql_select_db$dbname$conexion );

    
$no_tabla '(ninguna)';

    
$tabla = ( isset( $_REQUEST['ftabla'] ) ? $_REQUEST['ftabla'] : $no_tabla );

    echo 
"<pre>Tabla seleccionada: {$tabla}</pre>";
?>


<form action="" method="post">
    <table summary="Prueba">
        <tr>
            <th>Tablas</th>
        </tr>
        <tr>
            <td>
                <select name="ftabla" onchange="javascript:form.submit()">
                
                <?php
                    $sel 
= ( $tabla == $no_tabla ' selected="selected"' '' );
                    echo 
"<option{$sel} value=\"{$no_tabla}\">Seleccionar</option>";
                    
                    
$aux mysql_query'show tables from '.$dbname );
                    while ( 
$row mysql_fetch_row$aux ) )
                    {
                        
$sel = ( $tabla == $row[0] ? ' selected="selected"' '' );
                        echo 
"<option{$sel}>{$row[0]}</option>";
                    }
                    
mysql_free_result$aux );
                
?>
                
                </select>
            </td>
        </tr>
    </table>
</form>
Un saludo!