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');
?>