私はチェックリストに取り組んでいます。ユーザーはそれをクリックしながら4つの異なるオプションを設定できます。一度クリックすると、が緑色になり、「OK」、もう一度灰色、「N / A」、次に白で空になります。再び緑色になり、「OK」になり始めた後、データベースを更新するたびに、可能性ごとに値1、2、3、または0を使用します。javascriptはうまく機能し、[データベースの更新]をクリックするたびに、すべてのブラウザーで色とテキストが正しく更新されます。データベースの白または0に戻るまで、同様に機能します。クリックすると、1、2、3、0の順に更新され、1を取得する必要があるときに、それ以上更新されません。私はクロムでこの問題を抱えていません。
これがJavascriptコードです:
function CheckLog(TDCheck,ID){
var url;
var Color;
var Status;
var Text;
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request");
return;
}
var TD = document.getElementById("TDCheck"+TDCheck);
if(TD.style.backgroundColor == "white"){
Color = "green";
Status = "1";
Text = "OK";
}
else if(TD.style.backgroundColor == "green"){
Color = "grey";
Status = "2";
Text = "N/A";
}
else if(TD.style.backgroundColor == "grey"){
Color = "red";
Status = "3";
Text = "KO";
}
else if(TD.style.backgroundColor == "red"){
Color = "white";
Status = "0";
Text = "";
}
url="Checklist/checklog.php";
url=url+"?ID="+ID+"&TDCHECK="+TDCheck+"&Status="+Status;
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,false);
xmlHttp.onreadystatechange = function()
{
if(xmlHttp.readyState == 4 && xmlHttp.status == 200){
alert(xmlHttp.responseText);
}
}
xmlHttp.send(null);
document.getElementById("TDCheck"+TDCheck).style.backgroundColor=Color;
document.getElementById("TDCheck"+TDCheck).innerHTML=Text;
}
Checklog.php:
<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=dbname', 'database', 'password');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
if(isset($_GET["TDCHECK"]))
{
$bdd->exec("update ChecklistNew SET ".$_GET["TDCHECK"]." = '".$_GET["Status"]."' WHERE ID = '".$_GET["ID"]."'");
}
?>
問題が発生した場合に備えてPDOを削除し、mysql_connectを使用しましたが、それでも同じです。応答テキストを使用することで、SQLリクエストを監視し、1つのことを確認できます。
最初にクリックすると、クエリは次のようになります。
update ChecklistNew SET A2 = '1' WHERE ID = '4'
then
update ChecklistNew SET A2 = '2' WHERE ID = '4'
次に、phpファイルを「updateChecklistNew SET TD = number WHERE ID
='Idnum'」で更新すると(の前後に引用符が追加されますID
)
update ChecklistNew SET A2 = '4' WHERE `ID` = '4'
then
update ChecklistNew SET A2 = '0' WHERE `ID` = '4'
then
update ChecklistNew SET A2 = '1' WHERE ID = '4'
then
update ChecklistNew SET A2 = '2' WHERE ID = '4'
前のクエリを保持していることに注意してください。:)...そこに何かがあると思います。
助けていただければ幸いです!