Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/12/2008, 19:20
r0xdrig0
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 5 meses
Puntos: 0
prblemas para actualizar datos con Ajax

Hola amigos como estan?? bueno estoy trabajando con PHP Postgre 8.2 y Ajax (este mantenedor de actualizar lo estoy haciendo sin framework), bueno mi problema es q en la pagina donde me aparecen listados los usuarios para listarlos (los datos se presentan con unj link en el id del trabajador para q al hacer click en este aparesca el div q tiene el formulario para editar los datos), bueno mi problema es q el link no me funciona, es decir q al hacer click en el id no me aparece el div q contiene el formulario para editar los datos. aqui les dejo mi codigo para q me puedan ayudar please:

archivo ajax-js:

function objetoAjax(){

var xmlhttp=false;


try {

xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

} catch (e) {

try {

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");


} catch (E) {

xmlhttp = false;

}

}

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {


xmlhttp = new XMLHttpRequest();

}

return xmlhttp;

}

function enviarDatosEmpleado(){

//donde se mostrará lo resultados


divResultado = document.getElementById('resultado');

divFormulario = document.getElementById('formulario');

//valores de los inputs

id=document.frmempleado.idempleado.value;

nom=document.frmempleado.nombres.value;

dep=document.frmempleado.departamento.value;


suel=document.frmempleado.sueldo.value;



//instanciamos el objetoAjax

ajax=objetoAjax();

//usando del medoto POST

//archivo que realizará la operacion


//actualizacion.php

ajax.open("POST", "actualizacion.php",true);

ajax.onreadystatechange=function() {

if (ajax.readyState==4) {

//mostrar los nuevos registros en esta capa


divResultado.innerHTML = ajax.responseText

//mostrar un mensaje de actualizacion correcta

divFormulario.innerHTML = "<p style="border:1px solid red; width:400px;">La actualizaci&oacute;n se realiz&oacute; correctamente</p>";

}


}

//muy importante este encabezado ya que hacemos uso de un formulario

ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

//enviando los valores

ajax.send("idempleado="+id+"&nombres="+nom+"&depar tamento="+dep+"&sueldo="+suel)


}

function pedirDatos(idempleado){

//donde se mostrará el formulario con los datos

divFormulario = document.getElementById('formulario');



//instanciamos el objetoAjax


ajax=objetoAjax();

//uso del medotod GET

ajax.open("POST", "consulta_por_id.php?idemp="+idempleado);

ajax.onreadystatechange=function() {

if (ajax.readyState==4) {


//mostrar resultados en esta capa

divFormulario.innerHTML = ajax.responseText

//mostrar el formulario

divFormulario.style.display="block";

}


}

//como hacemos uso del metodo GET

//colocamos null

ajax.send(null)

}

este es el archivo php donde tengo la consulta por id y tambien tengo el formulario q deberia salir con los datos para editar al predionar en el id

Código PHP:
<?php

  
//Configuracion de la conexion a base de datos

  
include("funciones.php");
  
$conn conexion();

  
//consulta los datos del empleado por su id

  
$idemp=$_POST['idemp'];


$SELECT_EMPLEADO ="SELECT * FROM empleado WHERE id_empleado=$idemp";
$RES_EMPLEADO pg_query($conn$SELECT_EMPLEADO) or die("Error en el query: $SELECT_EMPLEADO.  " pg_last_error($conn));

;
        

//echo  $SELECT_EMPLEADO;


  
$row pg_fetch_array($RES_EMPLEADO);

  
/*$SELECT_EMPLEADO="SELECT * FROM empleado WHERE id_empleado=".$_POST[$idemp]."";
$RES_EMPLEADO = pg_query($conn, $SELECT_EMPLEADO);
$row = pg_fetch_array($RES_EMPLEADO);*/

  //valores de las consultas

  
$nom=$row['nombres'];

  
$dep=$row['departamento'];


  
$suel=$row['sueldo'];

  
//muestra los datos consultados en los campos del formulario

?>

  <form name="frmempleado" action="" 

  onsubmit="enviarDatosEmpleado(); return false">


  <input name="idempleado" type="hidden" value="<?php echo $idemp?>" />

  <p>Nombres 

  <input name="nombres" type="text" value="<?php echo $nom?>" />


  </p>

  <p>Departamento 

  <select name="departamento">

<?php

  
echo "<option value='".$dep."'>".$dep."</option>"


?>

  <option value="Informatica">Informatica</option>

  <option value="Contabilidad">Contabilidad</option>

  <option value="Administracion">Administracion</option>


  <option value="Logistica">Logistica</option>

  </select>

  </p>

  <p>Sueldo <strong>S/.</strong>


  <input name="sueldo" type="text" value="<?php echo $suel?>" />

  </p>

  <p>


  <input type="submit" name="Submit" value="Actualizar" />

  </p>

  </form>
este es el archivo donde listo a los empleados yu el cuan llama a la funcion ajax para cargar los datos:
Código PHP:
<?php

  
//Configuracion de la conexion a base de datos


  
include("funciones.php");
  
$conn conexion();
  
//consulta todos los empleados

 
$CONSULTAR_EMPLEADO="SELECT * FROM empleado";
    
$RES_EMPLEADO pg_query($conn$CONSULTAR_EMPLEADO);

  
//muestra los datos consultados


  //haremos uso de tabla para tabular los resultados

?>

  <table>

  <tr>

  <td>Codigo</td>


  <td>Nombres</td>

  <td>Departamento</td>

  <td>Sueldo</td>

  </tr>


<?php

  
while($row pg_fetch_array($RES_EMPLEADO)){

      echo 
"    <tr>";

      
//mediante el evento onclick llamaremos a la funcion PedirDatos(), la cual tiene como parametro

      //de entrada el ID del empleado

    
//    echo "         <td><a style="text-decoration:underline;cursor:pointer;" onclick="pedirDatos('".$row['idempleado']."')">".$row['idempleado']."</a></td>";

//aca esta sin errores

//echo "         <td><a style='text-decoration:underline;cursor:pointer;' onclick='pedirDatos('".$row[0]."')'>".$row[0]."</a></td>";

    
     
echo "         <td><a style=\"text-decoration:underline;cursor:pointer;\" onclick=\"pedirDatos('".$row['id_empleado']."')\">".$row['id_empleado']."</a></td>";

      echo 
"         <td>".$row[1]."</td>";


      echo 
"         <td>".$row[2]."</td>";

      echo 
"         <td>".$row[3]."</td>";

      echo 
"    </tr>";


  }

?>

</table>
esta es la pagina donde hago la consulta UPDATE:

Código PHP:
<?php

  
//Configuracion de la conexion a base de datos


  
include("funciones.php");
  
$conn conexion();
  
//variables POST

  
$idemp=$_POST['idempleado'];

  
$nom=$_POST['nombres'];

  
$dep=$_POST['departamento'];


  
$suel=$_POST['sueldo'];

  
//actualiza los datos del empleados

  
$UPDATE_EMPLEADO="UPDATE empleado SET nombres='$nom', departamento='$dep', sueldo='$suel' WHERE idempleado=$idemp";

 
$ACTUALIZAR_EMPLEADOpg_exec ($conn$UPDATE_EMPLEADO);
 
     if(
$ACTUALIZAR_EMPLEADO){echo"INGRESADO";}
    
    else 
    {
        echo 
$UPDATE_EMPLEADO ;
    }

  include(
'consulta.php');


?>
y esta es la pagina donde llamo al archivo ajax.js:

Código PHP:
<html>

  <head>


  <title>Registro con AJAX</title>

  <script language="JavaScript" type="text/javascript" src="ajax.js"></script>

  </head>


  <body>

  <h2>Modificar datos del empleado</h2>

  <p>Clic en el c&oacute;digo del empleado para modificar sus datos. </p>

  <div id="formulario">


  </div>

  <div id="resultado"><?php include('consulta.php');?></div>

  </body>

  </html>
Porfavor amigos guienme en q estoy fallando pq no me carga el formulario para editar los datos al hacer click en el ID de un empleado???

de antemano gracias.... bye