Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/09/2010, 13:55
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problemas con un formulario, un select y onchange en IExplorer (en Firefox

paloji:
Lo básico, ya te lo indicó _cronos.
firefox e internet explorer hacen exactamente lo mismo, solo procesan las variables que pasa el form (ademas de las que pasas por get en el method,, que por otra parte siempre van a estar vacías... vos usas POST)

Para que despues de procesar, se mantengan las opciones y no se restablezca, tenes que hacerlo como te lo señalo en el código más abajo, para generar el "selected=selected"...
El método onchange funciona cuando hay un "cambio(change)", para hacerl o correctamente tienes que incluir siempre un option "por defecto", con un value ="", también lo incluí en el código.
En cuanto a

Cita:
Y no me digais que incluya el select dentro del <form> porque por diseño no puedo, son diferentes archivos que uno incluye al otro
no se entiende a que te referís con eso...


Si te quedan dudas, ejecuta mi script select.php y comprúebalo tu mismo, $opt nunca se generará como variable

select.php

Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <title>Select fuera de form</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  6. </head>
  7. <body>
  8. <?php
  9. echo "<form name='territory_form' method='POST' action='".$PHP_SELF."?var1=".$var1."&amp;blabla=".$blabla."&amp;opt=".$opt."'>\n";
  10. ?>
  11. <select name='area' class='level0' onchange='document.territory_form.submit()'>
  12. <option value="">Seleccione un país</option>
  13. <option  value="Spain" class='level1'<?php if($_POST['area'] == 'Spain'){echo 'selected=\"selected\"';}?> >Spain</option>
  14. <option  value="UK" class='level1'<?php if($_POST['area'] == 'UK'){echo 'selected=\"selected\"';} ?> >UK</option>
  15. </select>
  16. </form>
  17. <select name='opt' class='level0' onchange='document.territory_form.submit()'>
  18. <option value="">Seleccione una opción</option>
  19. <option  value="Opt1" class='level1'>Opt1</option>
  20. <option  value="Opt2" class='level1'>Opt2</option>
  21. <option  value="Opt3" class='level3'>Opt3</option>
  22. </select>
  23. <pre>
  24. <?php
  25. echo "\n<b>se envió por get _GET</b>\n\n";
  26. foreach ($_GET as $indice=>$str) {
  27. $$indice =  $str ;
  28. echo "$indice = $str \n";
  29. }
  30. echo "\n\n<b>se envió por _POST</b>\n\n";
  31. foreach ($_POST as $indice=>$str) {
  32. $$indice =  $str ;
  33. echo "$indice = $str \n";
  34. }
  35. ?>
  36. </pre>
  37. <a href="select.php">Restablecer</a>
  38. </body>
  39. </html>

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.