Ciao, e' abbstanza semplice... forse se non hai mai usato ajax dovresti prenderci un po la mano pero' potresti fare cosi':
Io per comodita' uso jquery(libreria javascript orami usata da molti)
questo il sito con la documentazione http://jquery.com/ e download volendo anche se puio includere direttamente con
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
A questo punto avendo la libreria usi ajax di jquery
Avrai la tua funzione tipo:
codice:
function updateDB(idRecord){
$.ajax({
type: "POST", //metodo get o post
url: "publica.php", //lo script da richiamare
data: "idrecord="+idRecord, //tutto quello che passi come parametri (non serve ? iniziale)
success: function(dati){ //arrivi qui se la chiamata va a buon fine
//dati è quello che ritorna lo script chiamato
}
});
}
Ora tu hai come parte di html questo:
<a href="publica.php?idrecord=100">[img]pubblica.jpg[/img]
Che dovra' diventare per esempio:
<a href="publica.php?idrecord=100">[img]non_pubblica.jpg[/img]
Ora non so se interessa cambiare solo l'immagine o che nel tuo esempio; in tal caso ti basta dare un id al tag IMG e cambiare con javascript SCR a seconda del nuovo stato oppure se ti viene piu' comodo cambiare tutto il blocco <a href="publica.php?idrecord=100">[img]pubblica.jpg[/img] coi nuovi dati.
Tutto questo va gestito da quelle che ritorna ..success: function(dati){.. scritto sopra dove dati sarebbe o il valore per farti capire lo stato nuovo o tutto il nuovo pezzo html da usare e quindi:
codice:
function updateDB(idRecord){
$.ajax({
type: "POST", //metodo get o post
url: "publica.php", //lo script da richiamare
data: "idrecord="+idRecord, //tutto quello che passi come parametri (non serve ? iniziale)
success: function(dati){
if(dati==1){
$('#idRecord').attr('scr','pubblica.jpg');
}else{
$('#idRecord').attr('scr','non_pubblica.jpg');
}
//$('#idRecord') per jquery equivale a document.getElementById(idRecord)
//supponendo che avrai <img id="idRecord"..... />
}
});
}
Magari visto così senza aver mai provato sembra un casino ma se ci prendi la mano diventa molto semplice