Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/06/2011, 16:42
ramiromd
 
Fecha de Ingreso: agosto-2010
Mensajes: 100
Antigüedad: 13 años, 7 meses
Puntos: 2
Refrescar div tras procesar un formulario (Xajax)

Buenas, tal vez este algo perdido y lo que quisiera hacer no es posible, pero tengo este caso:
un div llamado "formulario" y otro "resultado". El formulario es llenado y se manda a procesar a precesarBusqueda.php y mi idea es que se procese y se actualice "resultado" sin que se actualice toda la pagina.
Lo que hice fue lo siguiente:

index.php:

Código PHP:
<?php

include('includes/libs/conexion.php');
$con conectar();
require_once(
'includes/xajax/xajax.inc.php');
//instanciamos el objeto de la clase xajax
$xajax = new xajax(); 
$xajax->setCharEncoding('ISO-8859-1');
$xajax->decodeUTF8InputOn();
include(
'includes/libs/selectGenerador.php');
include(
'includes/libs/precesarBusqueda.php');
$xajax->registerFunction("imprimeResultado");
$xajax->registerFunction("selectPlato");
$xajax->processRequests();

?>
precesarBusqueda.php
Código PHP:
function getIdTiposPlatoTipoSubmenu(){
    
$idComida $_POST["comida"];
    
$idPlato $_POST["plato"];
    
$query "SELECT t.idTiposPlatoTipoSubmenu FROM tiposplatotiposubmenu t 
                WHERE (t.idTipoplato = $idPlato) AND (t.idTipoSubMenu = $idComida)"
;
    
# echo $query;
    
$res mysql_query($query);
    
$row mysql_fetch_array($res);
    return 
$row[0];
}

function 
alimentosParaPlatoSubmenu(){
    
$idPlatoSubmenu getIdTiposPlatoTipoSubmenu();
    
$query "SELECT a.Alimento, COUNT( a.Alimento)
                FROM alimentosdemenudiario amd INNER JOIN alimentos a
                ON amd.idAlimento = a.idAlimento
                WHERE amd.idtiposplatotiposubmenu = $idPlatoSubmenu
                GROUP BY a.Alimento"
;
    
#echo $query;
    
$res mysql_query($res);
    return 
$res;
}

function 
imprimeResultado(){
    
$respuesta_resultado = new xajaxResponse('ISO-8859-1');
    
$recurso alimentosParaPlatoSubmenu();
    
$tabla "<table>";
    while (
$row mysql_fetch_array($recurso)){
        
$tabla .= "<tr><td>".$row[0]."</td><td>".$row[1]."</td></tr>";
    }
    
$tabla .= "</table>";
    
header("Location: index.php");
    
$respuesta_resultado ->addAssign("content_data","innerHTML",$tabla);
    return 
$respuesta_resultado;

formulario:
Código HTML:
Ver original
  1. <form name="busqueda" method="POST" action="includes/libs/precesarBusqueda.php">
  2. <table class="formulario">
  3.                     <tr>
  4.                         <td>Comida:</td>
  5.                         <td><select name="comida" onchange="xajax_selectPlato(this.value)"><?php selectComida(); ?></select></td>
  6.                         <td>Plato:</td>
  7.                         <td><div id="platos"><select name="plato"></select></div></td>
  8.                         <td>Alimento:</td>
  9.                         <td><select name="alimento"></select></td>
  10.                         <td>D&iacute;a:</td>
  11.                         <td><select name="dia"></select></td>
  12.                         <td><button type="submit" onclick="xajax_imprimeResultados()">Filtrar</button></td>
  13.                     </tr>
  14. </form>
El hecho es que al ejecutar el botón del form, va a precesarBusqueda.php y queda la pagina en blanco.
Cómo puedo resolver esto ?.
Desde ya muchas gracias.