como reservar um registro ?

Pessoal, bom dia a todos.
Gostaria de saber como faço para reservar um registro e desbloquear novamente. Situação é:
Tenho um agenda, e quando entro no dia e hora, faço um update como reservado (onload), para que assim outra pessoa entrar na tela já irá identificar que está sendo visualizado por alguem, só que qdo saio da tela não consigo tirar a reserva caso não tenha alterado nada… ele não volta… mesmo setando os valores a força ou dando o comando de update…
Outra informação: consigo colocar algum evento quando o usuario clica no botão sair ?

Cara ao meu ponto de vista vai ser muito difícil fazer esse controle, pois o usuário poderá não clicar no botão sair, e sim direto no menu ou direto no close da página.

O que você poderia fazer para ter um controle quando o usuário clicar em sair é:
1o - Tirar o botão sair padrão do scriptcase.
2o - Criar um botão sair em php.
3o - Fazer seu update nesse botão PHP e redirecionar para a aplicação desejada.

Agora para tentar contornar parcialmente o usuário que não clicar em sair, seria uma tempo para expirar o acesso do usuário ao modulo, fazendo um refresh no modulo após determinados minutos e gravando no banco a datahoraminuto que o usuário reservou, e quando um próximo usuário entrar na agenda verificaria se o tempo do usuário anterior expirou e o reservaria para si mesmo.

Espero ter ajudado.

Como eu faço:

No menu criar uma função javascript que a cada n segundos executa um script php via ajax, esse script marca a data e hora no usuário logado.

No seu caso o mesmo script executa a liberação dos registros reservados pelos usuários que estão a mais de n segundos sem acesso (usuário deslogado).

Esse é um exemplo antigo que eu já tinha postado aqui:

execute em guias do browser diferentes:

http://iw.servehttp.com:85/sc/iw/app/Publico/useronline_menu/useronline_menu.php?user_=MARIA

http://iw.servehttp.com:85/sc/iw/app/Publico/useronline_menu/useronline_menu.php?user_=JOAO

http://iw.servehttp.com:85/sc/iw/app/Publico/useronline_menu/useronline_menu.php?user_=PEDRO

Feche uma das guias pelo fechar do browser não pelo sair do menu e observe a outra guia aberta.

Função na onload do menu:

$tempo=90000;  //9 segundos

if (!empty($_GET['user_'])) {

$_path_prod=$_SESSION['scriptcase']['useronline_menu']['glo_nm_path_prod'];
$_user=$_GET['user_'];

echo "
<script type='text/javascript' src='$_path_prod/third/jquery/js/jquery.js'></script>

<script>
$(document).ready(function(){
 
 setInterval(ajaxConsulta, $tempo);
 
})
function ajaxConsulta(){
  $.ajax({
  
   url:\"../useronline/useronline.php?user_=$_user\",
   
   success:function(data){}
  
  })
 }
 ajaxConsulta();
</script>";
}

Código da app blank : useronline

$_user=urldecode([user_]); sc_exec_sql("replace into useronline set user='".$_user."'");

Tabela useronlie:

[code]delimiter $$

CREATE TABLE useronline (
User varchar(15) NOT NULL DEFAULT ‘’,
DataHora timestamp NULL DEFAULT CURRENT_TIMESTAMP,
Flag char(1) DEFAULT NULL,
PRIMARY KEY (User)
) ENGINE=MEMORY DEFAULT CHARSET=latin1$$

[/code]

O ajax é uma boa ideia, havia pensado nela, mais já se trata de um nível mais avançado, mais é ótima ideia, Haroldo…

Abraco.