php jquery ajax per modificare valore in un databe

  • Creatore Discussione Creatore Discussione paskuale
  • Data di inizio Data di inizio

paskuale

Nuovo Utente
23 Nov 2013
7
0
0
salve a tutti, sto cercando di documentarmi il più possibile ma non ne vengo a capo, non riesco a far funzionare una chiamata ajax per modificare il valore di una variabile presente nel mio database.
ho una tabella con un elenco di utenti, ad ogni utente è associata una piccola immagine che indica se l'account è attivo o disattivo, al click di questa immagine voglio permettere la modifica dello stato, se un account è attivo al click lo disattivo e viceversa, tutto questo tramite ajax.

posto un po di codice:

PHP:
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

<script type="text/javascript">
$(document).ready(function()
{
    $(".stato").click(function()
	{
		var user = $(this).parent("td").attr('id');

        $.ajax(
		{
			url: "inc/ajax_stato.php",
			type: "POST",
			data: { userid : user },
			dataType: "html",
			success:function(html)
			{
				$( ".stato" ).html(html);
			},
			error: function()
			{
				alert("ERRORE nella chiamata ajax!!!");
			}
		});
	});
});
</script>

la pagina continua con la creazione della tabella ed alla fine, l'ultima colonna della tabella è quella dello stato:
HTML:
		if ($row['attivo'] == 't')
		{
			echo '<input class="stato" type="image" src="images/attivo.png" alt="attivo"></input></td>';
		}else{
			echo '<input class="stato" type="image" src="images/disattivo.png" alt="disattivo"></input></td>';
		}

in base allo stato mostro l'immagine attivo/disattivo.

questa è la pagina php "ajax_stato.php" chiamata dallo script:

PHP:
<?php

	// includo il file con la lista delle funzioni di utilità
	require_once 'inc/user.php';
	
	//recupero l'id dell'utente via POST
	$userid = $_POST['userid'];
	
	//chiamo la funzione per cambiare lo stato e
	//verifico il risultato
	$stato = cambiaStato($userid);
	
	//se è falso c'è stato qualche errore 
	if ($stato == false)
	{
		echo 'alert("ERRORE: non posso cambiare lo stato!");';
	}
	else if ( $stato == 'attivo')
	{
		echo '<input class="stato" type="image" src="images/attivo.png" alt="attivo"></input>';
	}
	else if ( $stato == 'disattivo')
	{
		echo '<input class="stato" type="image" src="images/disattivo.png" alt="disattivo"></input>';
	}

?>


la funzione cambiastato funziona al 100% perche se la chiamo da codice effettua il suo lavoro.


dove commetto errori?


grazie mille
 
ho dimenticato di scrivere che ogni volta che clicco sull'immagine dello stato nella tabella HTML ottengo sempre l'errore della funzione error, mi compare sempre l'alert che dice: errore nella chiamata ajax!

Nessuno mi sa spiegare come mai?

Grazie ancora.
 

Discussioni simili