私はシステムを作成していますが、その一部には土曜日のシフトから従業員を削除する必要があります。これを行うには、JavaScript関数「removeEmpFromSaturday」を呼び出すアイコンをクリックし、対応するパラメータを送信します。AJAX呼び出しでデータベースが更新されない
このスクリプトでは、Ajaxリクエストによってデータベースを更新し、従業員を土曜日のシフトから削除する必要があります。
しかし、私が指しているPHPページは、決して実際に呼び出されたり、要求されたりすることはありません(「PHPページで警告します」)。
私は比較的新しいAJAXです。この関数では私の構文が完全に間違っている可能性がありますので、追加のポインターがあれば幸いです。
参照のため、「id、loc、week、year」の値を警告すると、私は期待している正しい値を返しますので、問題はありません。以下は
は、私は問題があると考えているコードです:<script>
function removeEmpFromSaturday(id, loc, week, year){
xhttp = new XMLHttpRequest();
xhttp.open("GET", "includes/ajax/remove_emp_from_saturday.php?e_id=" + id +
"&location=" + loc + "&week=" + week + "&year=" + year, false);
xhttp.send();
resetPlanner();
}
</script>
私はあまりにも向いていますPHPコード:
<?php require_once dirname(__FILE__)."/../admin_header.php" ;?>
<script>alert("STARTED");</script>
<?php
if(isset($_REQUEST['e_id'])){
$emp_id = escape($_REQUEST['e_id']);
$loc = escape($_REQUEST['location']);
$week = escape($_REQUEST['week']);
$year = escape($_REQUEST['year']);
$query = "SELECT e_hp_daily_pat FROM employees WHERE e_id = '{$emp_id}' ";
$get_hp_daily_pat_query = mysqli_query($connection, $query);
$row = mysqli_fetch_assoc($get_hp_daily_pat_query);
$e_hp_daily_pat = escape($row['e_hp_daily_pat']);
$query = "SELECT * FROM slots WHERE s_location = '{$loc}' AND s_day = '6'
AND s_week = '{$week}' AND s_year = '{$year}' ";
$get_emps_query = mysqli_query($connection, $query);
$row = mysqli_fetch_assoc($get_emps_query);
$s_real_sub = escape($row['s_real_sub']);
$s_emps = escape($row['s_emps']);
$s_emps = explode(";", $s_emps);
$process = false;
$e_match = 0;
foreach($s_emps as $emp){
if($emp == $emp_id){
unset($s_emps[$e_match]);
$process = true;
}
$e_match++;
}
if($process == true){
$s_emps = implode(";", $s_emps);
$s_real_sub -= $e_hp_daily_pat;
$query = "UPDATE slots SET s_emps = '{$s_emps}', s_real_sub = '{$s_real_sub}' WHERE s_location = '{$loc}' AND s_day = '6' AND s_week = '{$week} AND s_year = '{$year}' ";
$set_emps_query = mysqli_query($connection, $query);
}
}
?>
<script>alert("COMPLETE");</script>
そして、誰もがそれを言及する前に、私は私はないですのでご了承下さい私のパラメータをバインドし、それはmysqliで少し古いです、私は後でそれを更新します。
"PHPページの警告で実証されました" - これは証拠ではありません。 PHPスクリプトの出力を新しいWebページとしてブラウザに読み込んでいるわけではありません。あなたはPHPスクリプトの出力で**何も**していません。 – Quentin
@クエンティンは言った:あなたのパスをチェックしましたか?ファイルがあなたが言うところにあると確信していますか? :) – Jordumus
あなたが問題を抱えている場所をデバッグするには、デバッグするためにecho文を正しく実行するサーバーコールを実行してください。 –