Visualizzazione dei risultati da 1 a 10 su 10

Discussione: jQuery e gestione link

  1. #1

    jQuery e gestione link

    Buon giorno a tutti.
    Ho una pagina php che mi estrapola, attraverso una ricorsione, cartelle e file, restituendomi un struttura ad albero con Cartella->File oppure Cartella->sottocartella->file.
    Dovrei, inserire al fianco sia della cartella che del file un link 'rimuovi' cosi da poter rimuovere la cartella, il file o entrambi, inviando il relativo nome ad una pagina delete.php.

    Purtroppo non riesco a gestire la cosa, nel senso che, la funzione jQuery sembra essere agganciata solo alla prima cartella e quindi al primo link 'rimuovi', lasciando senza evento tutti gli altri link.
    Facendo cosi ho tutti i link attivi:
    codice:
    Cartella1 - Rimuovi
    
    Cartella2 - Rimuovi
    
    
    Cartella3 - Rimuovi
    testo.pdf - 
    Rimuovi
    <script>
    $("a").bind("click",function (event) {
         alert($(this).attr("title"));
    });
    
    //esempio tramite id del link
    /*$("#delFile a").bind("click",function (event) {
         alert($(this).attr("title"));
    });*/
    </script>
    Cosi facendo mi intercetta tutti i tag 'a' come indicato qui $("a"), invece vorrei che mi prendesse l'id 'delFile', cosi da prendere in considerazione solo determinati link.

    Grazie mille.
    Buona giornata e buon lavoro.

  2. #2
    Un id in un dom è univoco

  3. #3
    cioè?
    praticamente ad ogni link dovrei associare un id diverso?
    es:
    codice:
    Cartella1 - Rimuovi
    
    Cartella2 - Rimuovi
    
    
    Cartella3 - Rimuovi
    testo.pdf - 
    Rimuovi
    <script>
    $("a").bind("click",function (event) {
         alert($(this).attr("title"));
    });
    
    </script>
    In questo modo?
    Se si, come faccio a gestirlo all'interno della funzione?
    codice:
    //
    $(a).?
    Per favore aiutami...che non so più a che santo votarmi.
    grazie mille...

  4. #4
    Si, non puoi avere id uguali in un dom (o meglio se lo fai poi non puoi selezionare il singolo elemento).
    Per cui se metti id diversi puoi fare, ad esempio:

    codice:
    $('a').
    Se hanno una classe in comune tipo <a class='miaClasse'...
    Puoi fare:

    codice:
    $('.miaClasse').

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    19
    Lato php devi ciclare l'id autoincrementante dal DB e assegnarlo ad un campo hidden.
    Poi invece che gli id usi una classe.

    Codice PHP:
        <form class="form">
            <
    input type="image" src="image" />
            <
    input type="hidden" class="campoHidden" name="campoHidden" value="$id/>
               
    /* ($id lo prendi dal DB) */
        
    </form
    Nel js invece che un id ci metti la stessa classe e richiami quella con una funzione .submit. Attenzione che il primo valore lo usi con .find

    codice:
    $("#form").submit(function( ) {	
    var campoHidden = $(this).find(".campoHidden").val(); // Grazie ancora Senamion!
        $.ajax({ type: "POST", 
                    url:"file.php", 
    	   	 data:"campoHidden="+campoHidden  
    		 complete: function(data)
    		 	{$("#contenitore").load("file.php");}	
    	  });   return false; 
    });

  6. #6
    si ok...
    ricordo che i link e quindi tutto il menu ad albero, viene gestito da una funzione ricorsiva..
    pertanto ho questo problema:
    1) praticamente le cartelle madri hanno l'id da 0 a 4...
    2) l'id della prima sottocartella riparte da 4 sino alla 7 e cosi via
    3) per i file è uguale

    guardate questo è il risultato della:
    codice:
    //legenda:
    //con il link rimuovi contrassegnato dai numeri indico se è una cartella madre, sottocartella o file.
    //rimuovi3 è la cartella madre
    //rimuovi2 è la sottocartella
    //rimuovi è il file
    Varie - rimuovi3
    
    Circolari - rimuovi3
    
    Convenzioni - rimuovi3
    
    Documenti - rimuovi3
    
    	Comunicati - rimuovi3
    		2009 - rimuovi2
    		2010 - rimuovi2
    
    	Polizze - rimuovi3
    		POLIZZA INFORTUNI - rimuovi2
    		POLIZZA SANITARIA - rimuovi2
    
    					
    	Generale - rimuovi3
    		REGOLAMENTO - rimuovi2
    
    
    sisi - rimuovi3
    
    	nono - rimuovi3
    		CASSA PREVIDENZA - DATI X SITO INTRANET.DOC - rimuovi
    		CASSA - INTRO CONVENZIONI.DOC - rimuovi
    		FAC-SIMILE-AVVISO-BOLLETTA-INQUILINI.PDF - rimuovi
    		FOTO942.JPG - rimuovi
    ditemi se posso postare la funzione in php per farvi capire meglio come si comporta.
    grazie mille...
    spero che con il vostro aiuto possa risolvere, perchè sono in difficoltà....

  7. #7
    salve ragazzi riprendo questa discussione perchè ho un problema grave.
    Praticamente, aprendo la pagina filefolder.php, gestisco i link attraverso questo script:
    codice:
    jQuery(document).ready(function() {
    	//inizio blocco di istruzioni
    	$('a').bind("click",function (event) {
    		
    		jQuery("div#DFF").empty();
    		if($(this).attr("title")!=""){
    			
    			jQuery.post("deleteFolder/deleteFileFolder.php", 
    			{
    				linkid			:	$(this).attr("title")
    			},function(data){
    				jQuery("div#DFF").prepend(data);
    				$("div#DFF").text(linkid);
    			});
    			var linkid = $(this).attr("title");			
    			//alert($(this).attr("title"));
    			
    		}
    		return false; 
    	});
    });
    Due tipi di link:
    codice:
    //link menu
    chi siamo
    documenti
    
    //link di filefolder.php
    //es:link a cartella
    <a id='".$d."' class='miaClasse' href=\"javascript:void(0)\" title='".$path."'>rimuovi3</a>
    
    //es:link a file
    <a id='".$d."' class='miaClasse' href=\"javascript:void(0)\" title='".$path."'>rimuovi</a>
    Purtroppo però, anche i link del menu, attivano questa funzione, quando sto visualizzando filefolder.php che la contiene.Cosi facendo i link del menu non richiamano più le pagine del sito, ma attivano solo la funzione sopra riportata.

    C'è un modo per risolvere?

    Grazie mille.....

  8. #8
    Al posto di:

    codice:
    $('a').bind("click",function (event) {
    metti:

    codice:
    $('.miaClasse').bind("click",function (event) {

  9. #9
    ti ringrazio....ma ho fatto in un'altro modo, prendendo psunto dal tuo esempio, senza utilizzare il bind...
    ora ho un'altra domanda:
    come faccio a fare interagire javascript con php?
    Nel senso, faccio il primo controllo con php poi, attivo uno script in ajax per l'alert.
    Lo stesso, se decido di eliminare, dovrebbe interpretare questa funzioncina in php:
    Codice PHP:
    echo unlink($path); 
    ma purtroppo non lo fà..

    Questo è lo script completo:
    codice:
    if(is_file($path)){
    		//@unlink($path);
    		echo "
    		<s cript>
    		$(document).ready( function() {
    			jConfirm('Are you sure you want ot delete this thread?', 'Confirmation Dialog', 
    				function(r) {
    					if(r==true)
    					{
    						//$('#box').fadeOut(300);
    						 <?php echo unlink($path);?>
    					}
    				});
    		});
    		</s cript>
    		";
    	}
    E' possibile fare cio' che chiedo?
    grazie mille...

  10. #10
    Certo. E mi sembra che lo fai in modo corretto.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.