私はまだ PHP と AJAX に慣れていませんが、JavaScript と jQuery についてはある程度理解していると思います。ここに私の問題があります: 私の UI には、フォーム入力フィールドと [OK] ボタン (フォームの一部ではありません) があります。ユーザーが [OK] ボタンをクリックするたびに、入力フィールドの内容といくつかのセッション変数が AJAX 経由でサーバーに送信されるため、ページをリロードする必要はありません。
これが私のjsコードです:
$.post('api/someFile.php',
{
var1: nr1,
var2: nr3,
var3: nr3,
}
);
これが私のphpコードsomeFile.php
です:
<?php
// activate current session
session_start();
// use php console for debugging
require_once('PhpConsole.php');
PhpConsole::start();
// get data from UI
$var1 = $_POST["var1"];
$var2 = $_POST["var2"];
$var3 = $_POST["var3"];
debug("start receiving");
debug($var1 . " " . $var2 . " " . $var3);
// ... proceed with the data and write it in database...
debug("finished");
?>
問題は、すべてのコードsomeFile.php
が 2 回実行されることです。これはコンソール出力です:
javascript debug: send to server: nr1, nr2, nr3
php debug: start receiving
php debug: nr1 nr2 nr3
php debug: finished
php debug: start receiving
php debug: nr1 nr2 nr3
php debug: finished
ただし、データがデータベースに書き込まれるのは 1 回だけです。それはかなり奇妙です。それはphpコンソールのバグですか、それとも私のコードが悪いですか?