Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/05/2011, 09:53
neobcn
 
Fecha de Ingreso: agosto-2009
Ubicación: $this->home = "BCN";
Mensajes: 9
Antigüedad: 15 años, 3 meses
Puntos: 0
Problema XAJAX con SQL SERVER 2005

Saludos compañer@s,

Tengo una función php que utiliza xajaxResponse() para actualizar un formulario rellenando los correspondientes campos con los valores extraidos de una base de datos SQL Server.

El Select * from ....... está testeado con SQL Server Management Studio y el resultado es correcto.

Cuando escribo los registros (totales o según un id dado) en una tabla XHTML, me los carga bastante bien (tarda unos 3/4 segundos aproximadamente en rellenar una tabla de 8.300 registros).

Pero cuando utilizo xajax para actualizar un formulario, en algunos registros de la base de datos me rellena todo el formulario y en otros no.

Es decir: en algunos casos el formulario no rellena los campos del nombre del cliente, problema o solución (son los únicos campos que en determinados registros salen vacíos)

He probado de rellenar el formulario directamente sin utilizar xajax y funciona ok, pero me gustaría evitar "el pantallazo" de recargar toda la página entera.

El código que "intenta" rellenar el formulario es el siguiente:

Código PHP:
function ActualitzaFormulari($numSat)
{
    
// instancio el objecte resposta
    
$resposta = new xajaxResponse();
    
// conecto amb la base de dades
    
$conn Conecta("Ordres");
    
// consulta SQL SERVER
    
$sql "SELECT codigo, dataentra, nomclient, telefon, mod_extern, problema, solucio FROM ordres WHERE codigo = ".$numSat;
    
// executo el SQL
    
$res odbc_exec($conn$sql);
    
// Inicialitzo els camps del formulari
    
while($row odbc_fetch_array($res))
    {
        
// escric la consulta sql a la capa
        //$resposta->assign("mostraSQL", 'innerHTML', $sql);
        
$codi $numSat;
        
$client $row['nomclient'];
        
$data substr($row['dataentra'], 82)."/".substr($row['dataentra'], 52)."/".substr($row['dataentra'], 04);
        
$telefon $row['telefon'];
        
$equip $row['mod_extern'];
        
$averia $row['problema'];
        
$reparacio $row['solucio'];
    }
    
odbc_close($conn);
    
// buido la capa on es mostraben les suggerencies
    
$resposta->assign("missatge""innerHTML""");
    
// i la amago
    
$resposta->replace("missatge""style.visibility""visible""hidden");
    
// finalment omplo el formulari
    
$resposta->assign("codigo""value"$codi);
    
$resposta->assign("dataentra"'value'$data);
    
$resposta->assign("nomclient"'value'$client);
    
$resposta->assign("telefon"'value'$telefon);
    
$resposta->assign("mod_extern"'value'$equip);
    
$resposta->assign("problema"'innerHTML'$averia);
    
$resposta->assign("solucio"'innerHTML'$reparacio);    
    
    return 
$resposta;

Para testear este "efecto poltergeist", he probado diferentes metodologías de trabajo:

- cambiar el ODBC empleado (no funciona)
- cargar el formulario sin usar 'xajax' (si funciona, pero no mola)
- visitar xajax.org (no me ha servido)
- visitar msdn (me ha servido aún menos)

Tan solo me queda pedir socorro (después de más de 12 horas de pelea con este temita)

Si alguién ha sufrido este efecto de "esconder datos" y ha conseguido resolverlo, agradecería me echara una mano sin que fuera al cuello

Muchas gracias de antemano