Foros del Web » Programando para Internet » Javascript » Frameworks JS »

"Unknown function..." Alert

Estas en el tema de "Unknown function..." Alert en el foro de Frameworks JS en Foros del Web. Buenas, estoy realizando un filtro en base a 2 listas dependientes (todo mediante la libreria Xajax). Lo que necesito hacer es lo siguiente: tengo una ...
  #1 (permalink)  
Antiguo 26/06/2011, 16:23
Avatar de ramiro_md  
Fecha de Ingreso: septiembre-2008
Mensajes: 274
Antigüedad: 15 años, 7 meses
Puntos: 26
"Unknown function..." Alert

Buenas, estoy realizando un filtro en base a 2 listas dependientes (todo mediante la libreria Xajax).
Lo que necesito hacer es lo siguiente: tengo una tabla con todos los autos de una bd ya impresa.
Lo que quiero mediante dos selects (marca y modelo) es ir filtrando según la opción elegida por el usuario.
Entonces, el primer select de marcas debería imprimir el select de modelos (lo cual hace bien) y luego actualizar la tabla con los modelos de esa marca. Como para ya ir filtrando.
Los códigos son los siguientes, más o menos en resumen:

Generador de selects:
Código PHP:
function selectMarcas(){
    
$query "SELECT m.idMarca, m.Marca FROM Marcas m ORDER BY m.Marca ASC";
    
$res mysql_query($query) or die(mysql_error());
    echo 
"<option value='0'>Todas</option>";
    while (
$row mysql_fetch_array($res)){
        echo 
"<option value=".$row[0].">".$row[1]."</option>";
    }
}

// $id_marca viene del formulario!
function selectModelos($id_marca){
    
$respuesta = new xajaxResponse('ISO-8859-1');
    if (
$id_marca==0){
    
// Imprimo "todos"
      
$nuevo_select "<select name='modelos' class='search'><option value='999'>Todos</option></select>";
      
$respuesta->addAssign("modelosDiv","innerHTML",$nuevo_select);
      return 
$respuesta;
   }else{
       
$nuevo_select getModfromMarca($id_marca);
       
$respuesta->addAssign("modelosDiv","innerHTML",$nuevo_select);
       return 
$respuesta;
    }
}
// Registro la funcion para poder usarla mediante js ¿?
$xajax->registerFunction("selectModelos");
//El objeto xajax tiene que procesar cualquier petición
$xajax->processRequests(); 
Este archivo anda bien, porque lo uso en otras secciones y en esta misma y funciona.
Así defino filtrado_ajax.php:
function autosMarca($idMarca){
Código PHP:
    $respuesta = new xajaxResponse();
    
$query "SELECT v.idVehiculo, v.idModelo, v.idTipo FROM Vehiculos v INNER JOIN Modelos m ON (m.idModelo = v.idModelo) WHERE m.idMarca = $idMarca";
    
$res mysql_query($query);
    
$i 1;
    
$tabla "<table class='result'><th colspan='5'>".imprimeThead("Vehiculos"$res)."</th>";
    while (
$row mysql_fetch_array($res)){
        
/* si es par */
        
$aux $i;
        
$id $row[0];
        
$modelo htmlentities(nombreModelo($row[1]));
        
$tipo htmlentities(nombreTipo($row[2]));
        
$marca htmlentities(nombreMarcaSegunModelo($row[1]));
        if (
$aux%2==0){
            
$tabla .= "<tr class='par'><td><p class='result'>$id</p></td><td><p class='result'>".$marca."</p></td><td><p class='result'>".$modelo."</p></td><td><p class='result'>".$tipo."</p></td><td><a href='borrar.php?id=$id&op=$operacion' onclick='return confirm(\"Ud. esta a punto de borrar este elemento. Desea continuar? \")' >$del</a> <a href='#' onclick=\"xajax_imprimirModificar($id,'$operacion')\">$edit</a></td></tr>";
        }else{
            
$tabla .= "<tr class='impar'><td><p class='result'>$id</p></td><td><p class='result'>".$marca."</p></td><td><p class='result'>".$modelo."</p></td><td><p class='result'>".$tipo."</p></td><td><a href='borrar.php?id=$id&op=$operacion' onclick='return confirm(\"Ud. esta a punto de borrar este elemento. Desea continuar? \")' >$del</a> <a href='#' onclick=\"xajax_imprimirModificar($id,'$operacion')\">$edit</a></td></tr>";
        }
        
$i++;
    }
    
$respuesta->addAssign("tablaResult","innerHTML",$tabla);
    return 
$respuesta;

Asi lo declaro en el archivo princiṕal:
Código PHP:
Ver original
  1. include('../includes/php/libs/conectar.php');
  2. $link = conectar();
  3. require_once('../includes/php/xajax/xajax.inc.php');
  4. $xajax = new xajax();
  5. include('includes/php/libs/operacionesLibs.php');
  6. include('includes/php/libs/filtrado_ajax.php');
  7. include('../includes/php/libs/form_generate.php');
  8. include('includes/php/libs/impresorLibs.php');
  9. $xajax->registerFunction("imprimirModificar");
  10. $xajax->registerFunction("imprimirCrear");
  11. $xajax->registerFunction("autosMarca");
  12. $xajax->processRequests();

Y asi lo llamo desde los selects:
Código HTML:
Ver original
  1. <select name="marcas" onchange="xajax_selectModelos(this.value), xajax_autosMarca(this.value)"><?php selectMarcas(); ?></select>

El select de marca se carga y al seleccionar una carga el select de modelos pero me manda un alert js que dice "unknown function autosMarca".
La funcion esta registrada que sucede ?.
Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 26/06/2011, 16:48
Avatar de ramiro_md  
Fecha de Ingreso: septiembre-2008
Mensajes: 274
Antigüedad: 15 años, 7 meses
Puntos: 26
Respuesta: "Unknown function..." Alert

Lo solucioné. No sé si es la posta, pero me funcionó.
El tema es que estaba haciendo 2 $xajax-> processRequest();. Uno en el generador de selects y otro en la pagina principal.
Solo deje el de la pagina principal y anduvo.
Saludos.

Etiquetas: ajax, xajax
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:48.