sql >> Base de Datos >  >> RDS >> Mysql

Cómo actualizar una base de datos mysql sin recargar la página

Necesitas AJAX, como todos han dicho.

Como nunca ha escrito javascript, aquí tiene una guía para usted.

En lugar de tu

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

Escribir

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

Para AJAX, use jquery como lo sugirió Angelo. Descárgalo y agrega lo siguiente

<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>

Y finalmente, en tu path/to/add-item.php archivo escriba el código para agregar los artículos. El parámetro itemId estará disponible aquí como $_GET['itemId'] . Simplemente devuelva los valores de estado adecuados 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));
}