Ver Mensaje Individual
  #25 (permalink)  
Antiguo 10/07/2012, 22:46
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: Variables no pasan en etiqueta form

@rodrigo791

Estás más orientado, pero sigue estando mal, primero un pequeño error de tipeo supongo, usas
divResultado como variable y le haces un innerHTML a divResultado1

otro detalle, ubicá correctamente el tag body, y ahora si, conceptualmente, si vas a usar Ajax, olvidate del submit y del evento onsubmit(), a menos que hagas algo así

Código HTML:
Ver original
  1. <form method="get" name="frm" action="#" onsubmit="return MostrarConsulta();" id="frm">

y al final de la función

ajax.send(null);
return false;
}
pero es completamente innecesario. Si no lo que se procesa es la misma página html. muy distinto si fuese una validación para prevenir el envío de existir errores. Que no es el caso. Siempre es conveniente esto:

Código HTML:
Ver original
  1. <input type="button" value="Aplicar Filtro" onclick="MostrarConsulta('filtroconsulta.php');"/>

Y si, es cierto, es redundante pasar la url, en una script tan personalizada como esta.
Además, aunque parezca un detalle menor, si vas a desarrollar todo el código, corregi el html (Doctype válido, cierres de etiquetas correctos, entrecomillado de atributos, etc)
Finalmente una sugerencia, nunca en tus ejemplos de php uses short tags, puede que esten deshabilitados en el servidor del otro usuario y se generen inconvenientes,
con
<?php
?>

te segurás el correcto funcionamiento.

Ahora vamos con
@isabelramirezmontoya
Ya nos cruzamos en varios posts, y siempre girando sobre el mismo tema, te dí la respuesta y te dejé ejemplos funcionales. Te aclaré que esto, si se quiere entender (y no simplemente conseguir un código que funcione), requiere estudio, y los que has hecho hasta ahora (se nota el esfuerzo, por eso te estoy contestando) demuestra que estás usando la "intuición" y no la "cabeza".
Por favor analizá los ejemplos y estudía los tutoriales (librosweb.es es un excelenete punto de partida)
Bueno, basándome en tu código, aunque yo haría cosas diferentes, te dejo esto
filtrar.html
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6.  
  7. <script type="text/javascript">
  8. //<![CDATA[
  9.  
  10. function objetoAjax(){
  11. var xmlhttp=false;
  12. try {
  13. xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  14. } catch (e) {
  15. try {
  16. xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  17. } catch (E) {
  18. xmlhttp = false;
  19. }
  20. }
  21.  
  22. if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  23. xmlhttp = new XMLHttpRequest();
  24. }
  25. return xmlhttp;
  26. }
  27.  
  28.  
  29. function MostrarConsulta(url){
  30. var divResultado1 = document.getElementById('resultado1');
  31. var divResultado2 = document.getElementById('resultado2');
  32. var cat = document.getElementById('categoria').value;
  33. var ord = document.getElementById('orden').value;
  34. // contruís la variable datos con la url + la categoria + el orden como parámetros
  35. var datos = url + '?categoria=' + cat + '&orden=' + ord;
  36. alert(datos);
  37. ajax=objetoAjax();
  38. ajax.open("GET", datos);
  39. ajax.onreadystatechange=function() {
  40. if (ajax.readyState==4) {
  41. var abc = ajax.responseText;
  42. alert(abc);
  43. var ccc = abc.split("|");
  44. divResultado1.innerHTML = ccc[0];
  45. divResultado2.innerHTML = ccc[1];
  46. }
  47. }
  48. ajax.send(null)
  49. }
  50.  
  51. //]]>
  52. </head>
  53.  
  54. <form action="#" method="get">
  55.  <div class="filtro1">
  56.  Categoria: <select id="categoria">
  57.  <option value="opcion1">opcion1</option>
  58.  <option value="opcion2">opcion2</option>
  59.  <option value="opcion3" selected="selected">opcion3</option>
  60.  </select>
  61.  </div>
  62.  
  63. <div class="filtro2">
  64. Informacion: <select id="orden">
  65. <option value="opcion1">opcion1</option>
  66. <option value="opcion2">opcion2</option>
  67. <option value="opcion3" selected="selected">opcion3</option>
  68. </div>
  69.  
  70. <input type="button" value="Aplicar Filtro" onclick="MostrarConsulta('filtroconsulta.php');"/>
  71. </form>
  72.  
  73. <p>resultado 1</p>
  74. <div id="resultado1"></div>
  75. <p>resultado 2</p>
  76. <div id="resultado2"></div>
  77. </body>
  78. </html>

filtroconsulta.php

Código PHP:
Ver original
  1. <?php
  2. $categoria = $_GET['categoria'];
  3. $orden = $_GET['orden'];
  4.  
  5.  
  6. if($orden == 'opcion1'){
  7. echo "uno|";
  8. }
  9. if($orden == 'opcion2'){
  10. echo "dos|";
  11. }
  12. if($orden == 'opcion3'){
  13. echo "tres|";
  14. }
  15.  
  16. if($categoria == 'opcion1'){
  17. echo "manzanas";
  18. }
  19.  
  20. if($categoria == 'opcion2'){
  21. echo "naranjas";
  22. }
  23.  
  24. if($categoria == 'opcion3'){
  25. echo "peras";
  26. }
  27.  
  28. ?>


Un bocadillo final, referido a lo discutido en los primeros posts, y esto por supuesto, en mi caso personal.

Si en una Web/Aplicación Web, utilizo javascript, es por que se requiere, no por mero capricho, y si el usuario no tiene habilitado javascript, le advierto y lo redirijo a otra parte. Si le disgusta, es libre de no regresar a dicha página

Saludos
Edición:
@isabelramirezmontoya
la script que dejé contiene unos alert sólo para que verifiques, deben ser removidos o comentados para su uso final
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 11/07/2012 a las 00:15