A ver si alguien me puede echar una mano, con este que tiene tela. Tengo una aplicación que carga una serie de datos paginándolos, a continuación se proporciona la posibilidad de insertar un nuevo dato. Mi idea es que, el dato se inserte y a continuación se actualice los datos que estamos observando.
El problema: Al actualizar un dato, y recarga los datos, me devuelve al inicio de la paginación, y lo que es más extraño me cambia todos los enlaces de paginación. Para comprender un poco mejor mi caso, os expongo el código a continuación.
prueba.php
Código PHP:
<? include('../identificacion/fun1.php');
identificacion();
es_admin();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Posteo de quejas</title>
<link href="../css/pagination.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="formulario" style="display:none;">
</div>
<div id="resultado"><?php include('tramite.php');?></div>
<p><a href="../menu.php">Volver Al menu</a></p>
</body>
</html>
tramite.php
Código PHP:
<?
require('../comp/conexion.php');
$user=$_SESSION["usuario"];
echo "<p>HUECAS</p>";
$_pagi_sql="SELECT * from huecas";
$_pagi_cuantos = 10;
$_pagi_nav_num_enlaces=5;
$_pagi_nav_anterior="◄";
$_pagi_nav_siguiente="►";
$_pagi_nav_primera="1";
$_pagi_separador="";
include("../otros/paginator.inc.php");
$_pagi_nav_ultima=$_pagi_totalPags;
if (mysql_num_rows($_pagi_result)){
echo "<table border = '1' align='center' > ";
echo "<tr bgcolor='#FFFFFF'> \n";
echo '<th colspan="2" scope="col">ACCION</th> ';
echo '<th scope="col">PALABRA</th> ';
echo "</tr> \n";
while ($registro = mysql_fetch_array($_pagi_result)) { // comienza un bucle que leera todos los registros y ejecutara las ordenes que siguen
$cate= $registro['categoria'] ;
$id=$registro['id'] ;
echo "<tr> \n";
echo '<th scope="row"><img src="../img/borrar.png" /></th> ';
echo "<td align='center' ><a style=\"text-decoration:underline;cursor:pointer;\" onclick=\"pedirDatos('".$registro['palabras']."')\"><img src='../img/editar.png' /></a></td> ";
echo "<td align='center' >" . $registro['palabras'] . "</td> \n";
echo "</tr> \n";
} // fin del bucle de ordenes
echo "</table> \n";
echo"<div class='pagination'><p align='center'>".$_pagi_navegacion."</p></div>";
mysql_free_result($_pagi_result); // libera los registros de la tabla
}
else{
echo "¡ No se ha encontrado ningún registro !";
}
require('../comp/terminar.php');
?>
ajax.js
Código:
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
antigua=document.frmempleado.antigua.value;
nueva=document.frmempleado.nueva.value;
//instanciamos el objetoAjax
ajax=objetoAjax();
//usando del medoto POST
//archivo que realizará la operacion
//actualizacion.php
ajax.open("POST", "../otros/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>La actualización se realizó 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("nueva="+nueva+"&antigua="+antigua)
}
function pedirDatos(palabra){
//donde se mostrará el formulario con los datos
divFormulario = document.getElementById('formulario');
//instanciamos el objetoAjax
ajax=objetoAjax();
//uso del medotod GET
ajax.open("POST", "../otros/consulta_por_id.php");
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.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//enviando los valores
ajax.send("palabra="+palabra)
}
function nuevaPalabra(){
//donde se mostrará lo resultados
divResultado = document.getElementById('resultado');
divFormulario = document.getElementById('formulario');
//valores de los inputs
nueva_p=document.nueva_palabra.nueva.value;
//instanciamos el objetoAjax
ajax=objetoAjax();
//usando del medoto POST
//archivo que realizará la operacion
//actualizacion.php
ajax.open("POST", "../otros/nueva_hueca.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>Insertada 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("nueva_p="+nueva_p)
}
consulta_por_id.php
Código PHP:
<?php
$antigua=$_POST['palabra'];
//muestra los datos consultados en los campos del formulario
?>
<form name="frmempleado" action=""
onsubmit="enviarDatosEmpleado(); return false">
<input name="antigua" type="hidden" value="<?php echo $antigua; ?>" />
<p>Palabra a modificar
<input name="nueva" type="text" value="<?php echo trim($antigua); ?>" />
</p>
<p>
<input type="submit" name="Submit" value="Actualizar" />
</p>
</form>
y actualizacion.php
Código PHP:
<?php
//Configuracion de la conexion a base de datos
require('../comp/conexion.php');
//variables POST
$nueva=$_POST['nueva'];
$nueva= filtro1($nueva);
$antigua=$_POST['antigua'];
$nueva = " ".$nueva." ";
//actualiza los datos del empleados
$sql="UPDATE huecas SET palabras='$nueva' WHERE palabras='$antigua'";
mysql_query($sql,$con);
require('../comp/terminar.php');
include('../otros/tramite.php');
?>
Nota: El proyecto, funciona, si os da algun error es que he copiado mal todo el toxo, el problema esta entorno al innerHTML, pero no consigo solucionarlo.
Por favor ayuda!!!!