Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/11/2010, 19:05
crash1912
 
Fecha de Ingreso: noviembre-2010
Ubicación: Badajoz
Mensajes: 94
Antigüedad: 14 años
Puntos: 4
problema con ajax

Hola, soy nuevo por aqui, encontré este foro buscando un poco por la red a ver si podia resolver mi problema.
Les comento a ver si me pueden ayudar, se trata de un menú con efecto slide como les muestro en esta imagen:


Todo funciona correctamente hasta tratar de eliminar un registro de la base de datos, osea al pasar por ajax, que el menú pierde la funcionalidad slide y ya no permite ver lo que contiene hasta recargar la página.
Os ilustro un poco:

como pueden observar no estoy muy experimentado aún con todo esto, os agradeceré mucho un poco de ayuda y espero haber explicado bien el problema que no soy el mejor expresándome.
Gracias por adelantado!

Os dejo por aquí el código para que lo miréis un poco.

CATEGORIAS.PHP
Código PHP:
<div id="categorias" >
    <div id="firstpane" class="menu_list">
<?php
    $itemscategorias 
mysql_query("select * from mn_categorias"$conexion);
    while (
$fila mysql_fetch_array($itemscategorias)){
    echo 
"<p  class=menu_head> " $fila['categorias'] . "</p>";
    echo 
"<div class=menu_body>";
    
$resultado mysql_query("select * from mn_subcategorias where id_categoria = $fila[id_categoria] order by subcategorias"$conexion);
        while(
$fila mysql_fetch_array($resultado)){
            echo 
"<div class=subcategorias>";
            echo 
"<a href=#>".$fila['subcategorias']."</a>";
            echo 
"<a style=cursor:pointer; onclick=eliminarDato(".$fila['id_subcategoria'].")><img src=eliminar.gif align=right height=13px width=13px></a>";
            echo 
"</div>";
        }
        echo 
"</div>";
    }
?> 
    </div>
</div>
CATEGORIAS.JS
Código PHP:
$(document).ready(function(){
    
//efecto slide en el elemento class="menu_body" cuando se haga click en el elemento con class="menu_head"
    
$("p.menu_head").click(function(){
        $(
this).next("div.menu_body").slideToggle(300).siblings("div.menu_body").slideUp("slow");
    });
});
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 
eliminarDato(id_subcategoria){
    
//donde se mostrará el resultado de la eliminacion
    
divResultado=document.getElementById('resultado');
    
    
//cuadro de confirmacion    
    
var eliminar confirm("¿eliminar?")
    if ( 
eliminar ) {
        
//instanciamos el objetoAjax
        
ajax=objetoAjax();
        
//uso del medotod GET
        //archivo que realizará el proceso de eliminación
        
ajax.open("GET""eliminacion.php?id_subcategoria="+id_subcategoria);
        
ajax.onreadystatechange=function() {
            if (
ajax.readyState==4) {
                
//mostrar resultados en esta capa
                
divResultado.innerHTML ajax.responseText
            
}
        }
        
//como hacemos uso del metodo GET
        //colocamos null
        
ajax.send(null)
    }


ELIMINACION.PHP
Código PHP:
<?php
require('conexion.php');
//variable GET
$idemp=$_GET['id_subcategoria'];
$elimina="DELETE FROM mn_subcategorias WHERE id_subcategoria=$idemp";
mysql_query($elimina,$conexion);

include(
'categorias.php');
?>

Última edición por crash1912; 09/11/2010 a las 08:21