Tengo un formulario desde el que llamo a otras paginas web mediante include() de php de acuerdo con unos parámetros que selecciono mediante varios radio-button, con los que genero una consulta que trasladan la información a un Select. Cuando se produce un cambio en el select al seleccionar el parámetro que quiero, llama al script correspondiente y se carga la página debajo del formulario desde el que he hecho la llamada.
Funciona bien y no hay problema.
He querido dar un paso más con una una de las paginas que me devuelve los valores de una Consulta. La idea es, una vez cargada la pagina, poder ordenar los resultados según criterios diferentes. Para ello el script de la segunda página lo he desglosado en dos script.
script1 y script2.
Se produce la llamada al script1, que una vez cargado, mediante el include() llama al segundo script2. Y todo bien.
En el script1 he incluido dos input para cada campo por el que quiero ordenar la página del script2. Uno para orden ascendente y otro para orden descendente. El envento onclick desde el script1 es capturado mediante una función javascript que asigna valores a los inputs de un formulario que he incluido en el script1 y la idea es que se pudiera recargar la página del script2 con los parametros que le paso. Pero lo que sucede al hacer la llamada es que la página se vacía y sólo queda el script inicial desde el que se inicio el proceso.
No sé si es un problema de planteamiento o de codificación.
Os paso el código del script1 y script2
script 1
Código HTML:
Ver original
<!DOCTYPE HTML> <html lang="es"> <head> <!--Elegimos el juego de carácteres que incluye ñ y tildes--> <meta charset="utf-8"> <!--Indicamos al navegador como debe entender el tamaño de pantalla que tiene el dispositivo en el que vemos la página web. --> <meta name="viewport" content="width=device-width, initial-scale=1, maximun-scale=1"> <link rel="stylesheet" type="text/css" href="Estilo/ver_facturas.css"> <script type="text/javascript"> function ordenar_facturas(id) { if (id == "1asc"){document.getElementById('6').value= "Presupuesto ASC";} else if (id == "1dsc"){document.getElementById('6').value= "Presupuesto DESC";} else if (id == "2asc"){document.getElementById('6').value= "Evento ASC";} else if (id == "2dsc"){document.getElementById('6').value= "Evento DESC";} else if (id == "3asc"){document.getElementById('6').value= "Fecha ASC";} else if (id == "3dsc"){document.getElementById('6').value= "Fecha DESC";} else if (id == "4asc"){document.getElementById('6').value= "Factura ASC";} else if (id == "4dsc"){document.getElementById('6').value= "Factura DESC";} else if (id == "5asc"){document.getElementById('6').value= "Total ASC";} else if (id == "5dsc"){document.getElementById('6').value= "Total DESC";} var formulario_ordenar = document.getElementById('f1'); formulario_ordenar.submit(); } </script> </head> <body> <header> <?php //Cargo la variable con el año y el mes (ej: 2015-03). $var3 = $_POST['filtro_factura']; $var4 = ""; //Genero la consulta de facturas excluyendo los presupuestos cancelados que son los que tienen como //valor de confirmación el 3. y recogiendo las facturas del periodo seleccionado en la variable $var3. $sql="SELECT Id_Presupuesto AS Id_Pre, Ref_Pres AS Presupuesto, DATE_FORMAT(fecha_fin,'%Y-%m') AS Evento, Confirmacion AS Estado, fecha_Factura AS Fecha, Fact_Numer AS Factura, Resultado AS Total FROM presupuestos WHERE Confirmacion <> '3' AND DATE_FORMAT(fecha_fin,'%Y-%m') LIKE'".$var3."'".$var4.""; $cs=mysqli_query($cn,$sql); ?> <div class='factura'> <h2 class='titulodefactura'> Relación de facturas del <?php echo $var3 ?> <input type='button' class='boton' value='Simplificadas' onclick='abrir("descargar_fichero_simplificadas.php?key= <?php $var3 ?>")'> <input type='button' class='boton' value='Ordinarias' onclick='abrir("descargar_fichero_ordinarias.php?key=<?php $var3 ?>")'> </h2> <div class='cajadetitulos'> <div class='titulos'> <div class='caja_flecha'> <input class='etiqueta' id='1' value= 'Presupuesto'> <input class='flecha' id='1asc' value='▲' onclick= 'ordenar_facturas(this.id)'> <input class='flecha' id='1dsc' value='▼' onclick= 'ordenar_facturas(this.id)'> </div> </div> <div class='titulos'> <div class='caja_flecha'> <input class='etiqueta' id='2' value= 'Mes del evento'> <input class='flecha' id='2asc' value='▲' onclick= 'ordenar_facturas(this.id)'> <input class='flecha' id='2dsc' value='▼' onclick= 'ordenar_facturas(this.id)'> </div> </div> <div class='titulos'> <div class='caja_flecha'> <input class='etiqueta' id='3' value= 'Emitida el'> <input class='flecha' id='3asc' value='▲' onclick= 'ordenar_facturas(this.id)'> <input class='flecha' id='3dsc' value='▼' onclick= 'ordenar_facturas(this.id)'> </div> </div> <div class='titulos'> <div class='caja_flecha'> <input class='etiqueta' id='4' value= 'Número'> <input class='flecha' id='4asc' value='▲' onclick= 'ordenar_facturas(this.id)'> <input class='flecha' id='4dsc' value='▼' onclick= 'ordenar_facturas(this.id)'> </div> </div> <div class='titulos'> <div class='caja_flecha'> <input class='etiqueta' id='5' value= 'Total'> <input class='flecha' id='5asc' value='▲' onclick= 'ordenar_facturas(this.id)'> <input class='flecha' id='5dsc' value='▼' onclick= 'ordenar_facturas(this.id)'> </div> </div> </div> </div> </header> <nav> </nav> <section> <form name='form_ordenar' id='f1' method ='POST' action= 'include(form_control.php class=''> <input type='' id='6' name='' value=''> <input type='' id='7' name='' value='filtro_factura'> <?php include('ver_facturas.php'); ?> </form> </section> <footer> </footer> </body> </html>
script2:
Código HTML:
Ver original
<!DOCTYPE html> <html> <head> <meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" /> <link rel="stylesheet" type="text/css" href="Estilo/ver_facturas.css"> <script type="text/javascript"> function abrir(url) { openedWindow= window.open(url,"Presupuestos"); //openedWindow.close(); } function refrescar(url) { window.location=url; } </script> </head> <body> <?php foreach ($_POST as $clave=>$valor) { echo "El valor de $clave es: $valor"; } $var3 = $_POST['filtro_factura']; $var4 = ""; //Genero la consulta de facturas excluyendo los presupuestos cancelados que son los que tienen como //valor de confirmación el 3. y recogiendo las facturas del periodo seleccionado en la variable $var3. $sql="SELECT Id_Presupuesto AS Id_Pre, Ref_Pres AS Presupuesto, DATE_FORMAT(fecha_fin,'%Y-%m') AS Evento, Confirmacion AS Estado, fecha_Factura AS Fecha, Fact_Numer AS Factura, Resultado AS Total FROM presupuestos WHERE Confirmacion <> '3' AND DATE_FORMAT(fecha_fin,'%Y-%m') LIKE'".$var3."'".$var4." ORDER BY Presupuesto"; $cs=mysqli_query($cn,$sql); //echo "<div class='factura'>"; /* echo "<h2 class='titulodefactura'> Relación de facturas del ". $var3." <input type='button' class='boton' value='Simplificadas' onclick= abrir('descargar_fichero_simplificadas.php?key=".$var3."')> <input type='button' class='boton' value='Ordinarias' onclick= abrir('descargar_fichero_ordinarias.php?key=".$var3."')> </h2>"; echo "<div class='cajadetitulos'>"; echo"<input class='titulos' id='1' value= 'Presupuesto'>"; echo"<input class='titulos' id='2' value= 'Mes del evento'>"; echo"<input class='titulos' id='3' value= 'Emitida el'>"; echo"<input class='titulos' id='4' value= 'Número'>"; echo"<input class='titulos' id='5' value= 'Total'>"; echo "</div>";*/ echo "<div class='factura'>"; while($row_resultado = mysqli_fetch_assoc($cs)) { $producto = $row_resultado['Presupuesto']; echo "<div cajadedatos>"; echo"<input class='det_ref' value=".$row_resultado['Presupuesto']." onclick = abrir('form_principal.php?key=".$row_resultado['Id_Pre']."')>"; echo"<input class='det_ref' value=".$row_resultado['Evento']." ondblclick = abrir('generar_llamada_facturas.php?key=".$row_resultado['Evento']."')>"; echo"<input class='det' value=".$row_resultado['Fecha'] .">"; echo"<input class='det' value=".$row_resultado['Factura'] .">"; echo"<input class='det' value=".$row_resultado['Total'] .">"; echo "</div>"; } echo "</div>"; ?> </body> </html>
El parámetro para ordenar la consulta del scritp2 lo he dejado sin aplicar variable ya que de momento lo que necesito es que se pueda abrir este script2.
Espero haberme explicado correctamente.
Gracias.