Foros del Web » Programando para Internet » Jquery »

Consulta script eliminar archivos con AJAX

Estas en el tema de Consulta script eliminar archivos con AJAX en el foro de Jquery en Foros del Web. Hola a todos, les traigo una consulta simple pero que no se como resolverla... Tengo un script PHP que elimina archivos de mi servidor (unlink) ...
  #1 (permalink)  
Antiguo 30/11/2013, 13:49
 
Fecha de Ingreso: mayo-2011
Mensajes: 78
Antigüedad: 13 años, 5 meses
Puntos: 0
Información Consulta script eliminar archivos con AJAX

Hola a todos, les traigo una consulta simple pero que no se como resolverla...

Tengo un script PHP que elimina archivos de mi servidor (unlink) y lo utilizo yendo con un link que envia el nombre del archivo por GET al script que borra.

Lo que quiero hacer es lo mismo pero realizarlo con AJAX para no tener que recargar la pagina. El tema es que en la pagina donde muestro y selecciono el archivo a eliminar lo hago recorriendo la carpeta de archivos con un FOR.

Código:
   <script type="text/javascript">
      
function eliminararchivo(){


 
  var data = new FormData();

    data.append('archivo', '$dir . $file[$i]');//paso el nombre del archivo a eliminar
    data.append('op', '<?php echo $nroop ?>');//paso el numero de op
    
  $.ajax({
    url:'doeliminarfile.php', //Url a donde la enviaremos
    type:'POST', //Metodo que usaremos
    contentType:false, //Debe estar en false para que pase el objeto sin procesar
    data:data, //Le pasamos el objeto que creamos con los archivos
    processData:false, //Debe estar en false para que JQuery no procese los datos a enviar
    cache:false //Para que el formulario no guarde cache
  }).done(function(msg){

  });
}
         

</script>
Código PHP:
    $dir $nroop "/";
    if (
is_dir($nroop)){
    
$file scandir($dir);

    for( 
$i 2$i count($file); $i ++){
        echo 
"<tr><td>";
        echo 
'<a  target="_blank"  href="' $dir $file[$i] . '">' $file[$i] . '</a> <a onclick="eliminararchivo();" href="doeliminarfile.php?archivo=' urlencode($dir $file[$i]) . '&op=' $op '" >[X]</a>';
        echo 
"</td></tr>";
    }
    } 
El problema es como identificar lo que antes pasaba por GET como $dir . $file[$i] haciendo click en el mismo link. Ahora como tengo varios archivos y no es una cantidad fija, uso $i para hacer relativa la variable pero nose como usarlo con AJAX ya que en AJAX no tengo el valor de $i.

Agradezco a quien pueda ayudarme!!!
  #2 (permalink)  
Antiguo 30/11/2013, 18:23
 
Fecha de Ingreso: mayo-2011
Mensajes: 78
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Consulta script eliminar archivos con AJAX

Alguien me podria ayudar? se entendio cual es mi problema? muchas gracias!!
  #3 (permalink)  
Antiguo 01/12/2013, 03:28
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 10 meses
Puntos: 206
Respuesta: Consulta script eliminar archivos con AJAX

Borra todo el php de la función javascript, y utiliza en su lugar un parámetro, que será la url del fichero a eliminar. Envía ese parámetro por POST.

En el enlace de eliminar fichero, borralo todo. Y pon que al hacer click sobre ese enlace, llame a la función javascript pasándole la url del fichero que estás imprimiendo en esa línea, como argumento.
  #4 (permalink)  
Antiguo 01/12/2013, 08:36
 
Fecha de Ingreso: mayo-2011
Mensajes: 78
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Consulta script eliminar archivos con AJAX

Marlanga muchas gracias por tu respuesta! El Link php esta porque todavía no borró el script viejo de php que usaba. Lo que no se es como pasar como argumentó justamente el URL. Porq ese URL como ves no es una variable con un nombre fijo sino que depende del valor se i que va iterando en el bucle for. Por esto es q Nose como hacer referencia a esa variable en particular. Si pudieras ayudarme con eso te agradezco muchísimo saludos!!
  #5 (permalink)  
Antiguo 01/12/2013, 08:40
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 10 meses
Puntos: 206
Respuesta: Consulta script eliminar archivos con AJAX

Pues igual que escribes el href de un enlace con PHP, puedes escribir el onclick que llame a una función escribiendo el argumento con php.

Aunque esa no es la mejor forma de programar, para alguien que empieza, es lo más fácil.
  #6 (permalink)  
Antiguo 01/12/2013, 11:04
 
Fecha de Ingreso: mayo-2011
Mensajes: 78
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Consulta script eliminar archivos con AJAX

Marlanga, muchisimasss!!! graciasss!!! pude hacerlo pasando la direccion como argumento. Ahora me queda un solo problemilla, AJAX funciona bien, la consola del firebug me muestra que envia y recibe respuesta del servidor sin problema. pero el UNLINK($archivo) que tengo en la pagina con el script para eliminar el archivo por alguna razon no funciona... no me borra el archivo, es como si el script no funcionara...

Si envio por GET firebug no me muestra los valores de las variables, solo me muestra esto [object FormData]
_ 1385917341595

pero si lo hago por POST si me muestra y el valor de las variables esta OK. Cuando el script funcionaba lo hacia con GET, nose si por POST no funciona esta funcion de PHP (no creo que tenga que ver) o que puede ser lo que me este complicando... Si se te ocurre algo te agradezco. Saludos!
  #7 (permalink)  
Antiguo 01/12/2013, 11:21
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 10 meses
Puntos: 206
Respuesta: Consulta script eliminar archivos con AJAX

No se qué estarás haciendo en el PHP que borra el archivo. Usa $_GET cuando la llamada es por get, y $_POST cuando la llamada sea por post.
  #8 (permalink)  
Antiguo 01/12/2013, 12:11
 
Fecha de Ingreso: mayo-2011
Mensajes: 78
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Consulta script eliminar archivos con AJAX

En PHP lo unico que hago es recibir como vos decis segun ponga en ajax por post o por get la ruta del archivo en una variable y luego uso la funcion unlink($ruta). Unlink deberia borrar el archivo pero no lo hace... voy a segir probando que puede llegar a ser... gracias

Etiquetas: ajax
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:17.