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

prblemas para actualizar datos con Ajax

Estas en el tema de prblemas para actualizar datos con Ajax en el foro de Frameworks JS en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 23/12/2008, 19:20
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 4 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
  #2 (permalink)  
Antiguo 24/12/2008, 00:16
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: prblemas para actualizar datos con Ajax

Hola:

A simple vista "comentas" que usas get, pero tienes esto:

Código:
ajax.open("POST", "actualizacion.php",true);
Arregla eso y dinos si sigue fallando.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 24/12/2008, 09:32
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: prblemas para actualizar datos con Ajax

Hola caricatos, sabes cambie a GET lo q me dijiste y aun me sigue fallando de verdad estoy nublado no se q puede estar fallando ya no me kedan ideas, porfavor amigos ruego por su ayuda de antemano gracias..... bye
  #4 (permalink)  
Antiguo 24/12/2008, 12:37
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: prblemas para actualizar datos con Ajax

Porfavor amigos ayudenme, guienme he probado con get y post y sigue sin cargarme el div q contiene el formulario para editar los datos al hacer click en el id q lo tengo linkeado para q aparesca q aparesca dicho div con los datos para q estos sean editados porfavor ayuda amigos!!!!!
  #5 (permalink)  
Antiguo 24/12/2008, 13:02
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: prblemas para actualizar datos con Ajax

Cambie el GET por POST en la funcion pedirDatos del archivo ajax puse asi ajax.open("POST", "consulta_por_id.php"); y en el ajax.send puse asi ajax.send("idemp="+idempleado) y en el archivo consulta_por_id lo cambie y lo tengo asi $idemp=$_POST['idemp']; , aun asi no me carga el div del formulario para editar los datos en verdad ya no se q hacer no entiendo por que no me funciona??? porfavor ayuda amigos!!!!!
  #6 (permalink)  
Antiguo 24/12/2008, 23:42
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: prblemas para actualizar datos con Ajax

Hola:

Con el método post, debes también usar la cabecera...
ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 25/12/2008, 16:11
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: prblemas para actualizar datos con Ajax

Hola si si inclui esa cabecera ya q estoy usando el metodo post, pero el problema lo tengo en el onclick q tengo en la pagina conculta, ya q no me propaga el id del empleado al div del formulario q edita es decir mediante el on click no le llega el id del empleado a la variable $idemp q tengo en el archivo consulta_por_id q es este archivo el q contiene el formulario para editar y me pregunta es ¿en q estoy fallando al propagar el id del empleado en la funcion del onclick? ya q en el archivo ajax tengo todo con el metodo POST porfavor pueden guiarme y decirme pq no se me propaga la variable del id del empleado en el on click?????? de antemano gracias..... bye
  #8 (permalink)  
Antiguo 26/12/2008, 02:14
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: prblemas para actualizar datos con Ajax

Hola:

Me parece que estás usando un enlace para llamar a esa función, y un enlace "enlaza" salvo que se cancele con return false en el onclick... posibles soluciones: En vez de usar un enlace usar otro control (es lo que suelo aconsejar)... si la razón de usar un tag es por su aspecto (cursor, subrayado de texto, etc.) puedes usar otro tag (span por ejemplo), y cambiar su aspecto con estilos... más semántico sería un botón.
Y la otra alternativa es cancelar ese enlace (return false), pero aunque suele usarse y funciona, no me gusta.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 26/12/2008, 11:48
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: prblemas para actualizar datos con Ajax

aca voy de nuevo :S, sabes q encontre el error, pero no se como solucionarlo, ya q en el archivo consulta.php estoy llamando a la funcion pedirDatos q esta en el archivo ajax, y ese archivo ajax.js lo estoy llamando desde la pagina/archivo empleados_acrualizacion rn la cual tb incluyo con un include el archivo consulta.php, mi consulta ahora es pq no me esta llamando la funcion pedirDatos() desde el archivo consulta.php??? q o como tendria q hacerlo para q me llame el archivo.js/funcion pedirDatos??? desde donde tendria q llamarla si ya la estoy llamando desde la pagina empleados actualizacion.... desde donde tendria q llamar el archivo ajax.js entonces para q me tome la accion onclick al llamar la funcion pedirDatos() y asi se me pueda propagar el la variable id???.... de antemano gracias.... espero me puedan guiar bye.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 00:53.