Passaggio di variabili tramite ajax / jquery

di il
3 risposte

Passaggio di variabili tramite ajax / jquery

Premetto che sono completamente ingorante in merito a javascript, tuttavia mi occore apportare una modifica al mio sito ("http://www.painteronline.or"). É un sito d'arte, e vorrei implementare una funzione che permette agli utenti di visionare gli ultimi quadri visti. Il problema è il seguente:

La pagina in questione, ad esempio questa: "http://www.painteronline.org/visual2.php?pittore=fasano66" presenta i quadri di un determinato pittore, la pagina funziona in questo modo, prima effettua una query per ricavare i quadri del pittore selezionato, poi un ciclo for li dispone nella pagina. Io vorrei che ogni volta che un utente del sito clicca su un quadro venga eseguita una query che si occuperà di salvare in una tabella del database i vari dati dell'immagine (ad es. il percorso della miniatura, il percorso dell'immagine di dimensioni più grandi, il titolo del quadro etc etc...). In questo modo potrei creare facilmente una pagina con, ad esempio, gli ultimi 50 quadri cliccati.

Devo fare in modo che questa operazione avvenga senza ricaricare la pagina, e che al clic sulla miniatura venga richiamato un file .php esterno, il quale, dopo aver ricavato le variabili tramite POST eseguirà la query che popolerà la tabella degli ultimi quadri visti.

É necessario che questo avvenga senza dover ricaricare la pagina, anche perchè l'anteprima del quadro viene fatta tramite jquery con una "shadow box" che viene attivata cliccando sull'immagine che è all'interno di un tag "a href" come potete vedere:

Codice all'interno del ciclo for che stampa a video il risultato della query

echo '
	<li>
	  <a rel="prettyPhoto[IMG_]" class="noborder" title="'. strtoupper($image_caption) . $image_width_ok . $image_height_ok .' '. ucfirst($image_description) .' - Genere: '. str_replace('_', ' ', $image_genere) .'" href="'. $image_link .'" onclick="salva();" >
	      <img style="margin-bottom:10px;" src="'. $image_thumb_link .'" class="thumb" border="0" alt="'. $nomep .' '. $cognomep .' - '. $image_caption .'" /><br /><span class="visual2">'. SubPoint($image_caption,0,10) .'</span>
	  </a>
	</li>
	';
ho letto in giro per la rete che il modo migliore per fare quello che voglio fare è di utilizzare ajax. Quindi ho messo anche questo in fondo alla pagina, all'interno del tag <body>.

<script type="text/javascript"> 
function salva(image_thumb_link, image_link){
$.ajax({
  type: "POST",
  url: "http://www.painteronline.org/test.php",
  data: ({
        image_thumb_link: image_thumb_link,
        image_link: image_link
  }),
  dataType: "text"
  }
}
</script>
e questa è la porzione di codice php presente nel file esterno (test.php) che si dovrebbe occupare della query

$image_thumb_link = $_POST['image_thumb_link'];
$image_link = $_POST['image_link'];

$sql = "UPDATE ultimi_visti SET thumb='$image_thumb_link', link_image='$image_link'" or die(mysql_error());
$aggiorna = mysql_query($sql);
ma non riesco a farlo andare, cliccando sul quadro la tabella non viene modificata.
Mi date una mano?

Vi ringrazio per l'aiuto.

3 Risposte

  • Re: Passaggio di variabili tramite ajax / jquery

    Penso che il problema sia dovuto al fatto che nei dati che vuoi inviare tramite ajax, il nome del parametro sia uguale al nome della variabile, per cui di fatto il parametro non ha il nome desiderato.
    In parole povere devi modificare il parametro "data" in questo modo:
    
     data: ({
            'image_thumb_link': image_thumb_link,
            'image_link': image_link
      })
  • Re: Passaggio di variabili tramite ajax / jquery

    Ho provato a modificare ma non cambia nulla, mi sorge un dubbio:
    nell'header della pagina ho questo
    
    <script src="http://www.google.com/jsapi" type="text/javascript"></script>
    <script type="text/javascript" charset="utf-8">google.load("jquery", "1.3");</script>
    <script src="include/jquery.prettyPhoto.js" type="text/javascript" charset="utf-8"></script>
    
    Non è che mi serve di importare qualcos'altro per utilizzare ajax?
  • Re: Passaggio di variabili tramite ajax / jquery

    Probabilmente devi includere la libreria di jquery (che puoi scaricare qua semplicemente copiando tutto il contenuto della pagina e salvandolo in un file con estensione js, ad esempio jquery.js, e poi includendolo all'interno del tag <script>).
    Un'altra cosa che potrebbe essere utile è utilizzare un browser come chrome oppure firefox (in quest'ultimo caso installando anche il plugin firebug) in quanto ti permettono di debuggare i tuoi script. In particolare con chrome puoi effettuare un right-click sulla tua pagina, selezionare "ispeziona elemento", selezionare il tab "resources" -> la cartella corrispondente alla tua pagina -> scripts. In questo modo potrai vedere tutti gli eventuali errori presenti negli script js.
Devi accedere o registrarti per scrivere nel forum
3 risposte