我正在制定一个清单,用户可以在点击它的同时设置 4 个不同的选项。当您单击一次时,它是绿色并显示“ok”,再次显示灰色和“N/A”,然后是白色和空白。在它再次开始变为绿色和“OK”之后,每次我用值 1、2、3 或 0 更新我的数据库时,每种可能性。javascript 工作得很好,每次我点击 For the update of the database 时,所有浏览器中的颜色和文本都会正确更新,它也可以正常工作,直到我回到数据库中的白色或 0。我单击,它更新为 1,然后是 2,然后是 3,然后是 0,然后当你应该得到 1 时它不再更新它了。我的chrome没有这个问题。
这是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;
}
检查日志.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 请求,我可以看到一件事:
我先点击,查询如下:
update ChecklistNew SET A2 = '1' WHERE ID = '4'
then
update ChecklistNew SET A2 = '2' WHERE ID = '4'
然后,如果我用“更新 ChecklistNew SET TD = number WHERE ID
= 'Idnum'”更新 php 文件(我在 arround 周围添加了引号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'
请注意,它保留了先前的查询。:)...我认为那里有些东西。
我将不胜感激任何帮助!