0

ユーザーがオンラインの人々を見つけようとするphpページがあります。

検索ボタンをクリックすると、データベース内の現在のユーザーのエントリが作成され、コントロールがループ内に入り、5 秒ごとにデータベース内で検索が行われ、新しいエントリが作成されたかどうかが確認されます。エントリが見つかり、パートナーの詳細が表示されます。

パートナーが見つかる前にユーザーがページを終了または移動した場合、そのエントリをデータベースから削除する必要があります。

ユーザーに対して作成された「ID」をセッション変数に保存し、ajax 呼び出しを行ってエントリを削除しようとしていますが、どういうわけかこの概念が機能していません。データが削除されていません。これは、ユーザーまたは他の何かをまだ見つけているループが原因で、それを取得できません。

誰かが私のアプローチで何がうまくいかないのか教えてもらえますか?

私が使用しているコードスニペットはここにあります

window.onbeforeunload = function() {
 funcDeleteonexit();
return "Are you sure you want to navigate away?";
}

function funcDeleteonexit(){
  $.get("functions.php",{
      data:"delete"
  },function(data,status){
 });
 }

functions.php の中には、

if($_GET){
if ($_GET['data']=="delete"){
    echo deletefromDb();
   }
}


function deletefromDb() {

    $mysqli = new mysqli("localhost", "root", "", "test");

    /* check connection */
    if (mysqli_connect_errno())
    {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }
    $currentid = (int)$_SESSION['currentId'];

    $query1 = "delete from test where id =". $currentid;

    $mysqli->query($query1);
    $mysqli->close();
    return $currentid;
}
4

2 に答える 2

-1

ブラウザが ajax を送信しないか、中断することをお勧めします。したがって、AJAX リクエストを同期させるようにしてください。JQuery の場合、async パラメータが false に設定されているようです

$.get("functions.php",{
      data:"delete",
      async : false
  },function(data,status){
 });
于 2013-06-29T17:34:49.667 に答える