Mysql
 sql >> Database >  >> RDS >> Mysql

Come aggiornare un database MySQL senza ricaricare la pagina

Hai bisogno di AJAX, come tutti hanno detto.

Dato che non hai mai scritto javascript, ecco una guida per te.

Invece del tuo

<a href="add-item.php?itemid='.$itemId.'" > Add Item </a>

Scrivi

<a onclick="addItemToUsersList('.$itemId.')" > Add </a>

Per AJAX, usa jquery come suggerito da Angelo. Scaricalo e aggiungi quanto segue

<script type="text/javascript" src="http://path/to/jquery-latest.min.js"></script>
<script type="text/javasript">
function addItemToUsersList(itemId)
{
  $.ajax({
    'url': 'path/to/add-item.php', 
    'type': 'GET',
    'dataType': 'json', 
    'data': {itemid: itemId}, 
    'success': function(data) 
    {
      if(data.status)
      {
        if(data.added)
        {
          $("span#success"+itemId).attr("innerHTML","Item added to your personal list");
        }
        else
        {
          $("span#success"+itemId).attr("innerHTML","This item is already on your list");
        }
      }
    },
    'beforeSend': function() 
    {
      $("span#success"+itemId).attr("innerHTML","Adding item to your bucketlist...");
    },
    'error': function(data) 
    {
      // this is what happens if the request fails.
      $("span#success"+itemId).attr("innerHTML","An error occureed");
    }
  });
}
</script>

E infine, nel tuo path/to/add-item.php file scrivere il codice per aggiungere gli articoli. Il parametro itemId sarà disponibile qui come $_GET['itemId'] . Restituisci semplicemente i valori di stato corretti usando json_encode.

if($bucketlist < 1) 
{
  mysql_query("INSERT INTO membersbuckets (memberbucketid, userid, bucketid, complete) VALUES ('', '$userid', '$_GET['itemId]', '0')");
  return json_encode(array("status" => true, "added" => true));
}
else
{
  return json_encode(array("status" => true, "added" => false));
}