PDA

View Full Version : [PHP] eseguire istruzioni dopo click link


trinakrius
26-02-2012, 11:23
salve, ho cercato dappertutto senza esito...

è possibile eseguire istruzioni dopo aver cliccato su un link?
cioè fare in modo di capire se è stato cliccato o meno un link?

Filly95
26-02-2012, 22:04
Così al brucio mi verrebbe da dirti di mettere un onclick al link che hai... Però se magari mi spieghi bene cosa dovresti fare si può vedere cosa si può fare. :)

trinakrius
27-02-2012, 09:42
devo chiedere una conferma prima di scaricare un file...
pensavo ad un confirm javascript ma dovrei passare una variabile php....

considera che ho un ciclo for che crea 12 link, cliccando su uno di essi deve prima comparire un msg del tipo 'sei sicuro di voler scaricare?', potrei anche evitare di chiedere una risposta e mettere solo un messaggio di notifica download

trinakrius
27-02-2012, 10:32
questa è la situazione ma il confirm non va...help

for($i=0;$i<=11;$i++){
$dir="file/" . $mesi[$i] . "/" . $_SESSION['user'] . ".pdf";

if(file_exists($dir)){

echo "<tr><td width=40% bgcolor=\"#eeeeee\"><img src='2call/check.png' width=25></img><a onClick=return confirm('Sei sicuro di voler uscire dalla pagina?'); href=" . $dir . ">" . $mesi[$i] . " </a></td></tr>";

$flag_colore=1;
} else {
resto del codice
}

}

trinakrius
27-02-2012, 10:47
risolto l'onclick adesso va! ma voglio che dopo l'ok del return confirm possa gestire una variabile in php...come posso fare?

!fazz
27-02-2012, 10:57
risolto l'onclick adesso va! ma voglio che dopo l'ok del return confirm possa gestire una variabile in php...come posso fare?

php è un linguaggio lato server ciò significa che viene eseguito prima di generare la pagina e quindi da javascript non viene visto

una soluzione potrebbe essere usare un link alla stessa pagina con dei parametri in formato get

trinakrius
27-02-2012, 12:11
eh si ci avevo pensato, ma sarebbe troppo scomodo per l'utente.
non posso ottenere una var da return confirm? ti spiego, dovrei dopo aver scaricato il file, salvare su un txt l'utente e la data del download niente di più....

Dan__88
27-02-2012, 16:00
Puoi usare una funziona Jquery,
mi spieghi esattamente cosa devi farci con la variabile e dove la prendi?..

trinakrius
27-02-2012, 19:44
allora:
inizio ciclo for fino a 12 per stampare link a file distinti per mesi e nomeutente
-gennaio/nomeutente.pdf
-febbraio/nomeutente.pdf
.
.
.
.
-dicemvre/nomeutente.pdf
per ogni link mi deve chiedere prima la conferma(risolto con return confirm) e deve scrivere su un file o una variabile il nomeutente e ladata in cui viene scaricato il file

trinakrius
27-02-2012, 19:45
dove la prendo? questo è il problema.... il return confirm mi genera una variabile o potrei trovare un escamotage dato che di java e jquery ne capisco quasi nulla

Dan__88
27-02-2012, 22:26
sull'onclick dovresti chiamare una funzione jquery,
che chiede il confim e poi fa una chiamata ajax per salvare la variabile !

Dan__88
27-02-2012, 22:32
Dovrebbe essere una cosa del genere:


function f()
{
var answer = confirm("Sicuro?")
if (answer){
$.post("paginaConQuery.php", { name: "<?=$variabile ?>" },
function(data){}
);
return true;
}

return false;
}


e poi fai onclick="f"

Dan__88
27-02-2012, 22:34
anzi scusami,
visto che il link è generato dinamicamente fai

onclick="f($nomeutente)"


Insomma passi il nome alla funzione f

e poi:


function f(nome)
{
var answer = confirm("Sicuro?")
if (answer){
$.post("paginaConQuery.php", { name: nome},
function(data){}
);
return true;
}

return false;
}

Filly95
27-02-2012, 22:41
dove la prendo? questo è il problema.... il return confirm mi genera una variabile o potrei trovare un escamotage dato che di java e jquery ne capisco quasi nulla

Sto provando da mezz'ora a scrivere una cosa in js/php che non implichi jQuery o AJAX, appena riesco a scrivere qualcosa di fattibile aggiorno il post :P maledetto sonno...


<script type="javascript">
function check(mese) {
var choice = confirm("Vuoi scaricare il file?");
if(choice) {
window.location="dl.php?user="+<?PHP echo $_SESSION['user'] ?>+"&mese="+mese;
}
}
</script>
...
<? PHP
for($i=1;$i==12;$i++) {
echo '<a onClick="check(<?PHP $mesi[$i] ?>)">'.$mesi[$i].'</a>'
}
?>

e su dl.php:

<? PHP

$file="file/".$_GET['mese']."/".$_GET['user'].".pdf";

//content type
header('Content-type: application/pdf');
//open/save dialog box
header('Content-Disposition: attachment; filename='.$file);
//read from server and write to buffer
readfile($file);
?>

Così dovrebbe andare...
PS: Il file dl.php forza il download del file. Il codice è copiato al 95% da qui (http://www.vijayjoshi.org/2008/11/25/how-to-allow-users-to-download-files-in-php).

trinakrius
28-02-2012, 13:49
risolto!!!
ho messo onclick nel submit di scelta anno e mese, e nel file php richiamato dall'action del form ho prima verificato che il file non esista(in questo caso compare msg derrore ed esce dall'esecuzione) se esiste mi fa un header sul file e scrive su un txt i dati desiderati

grazie mille

Filly95
28-02-2012, 16:49
Bene! Tra l'altro mi sono acccorto che nel mio codice mancava la parte in cui scriveva sul txt! :doh: