データベース クエリの結果に応じて、ボタンを無効または有効にしたいと考えています。しかし、方法がわかりません。例から、クエリの結果に応じてテキスト (id="error") を表示できましたが、ボタン (id="generate") を有効にしても機能しません。
これは私のJavaScriptです:
function checkSender(str)
{
if(str == "")
{
str=document.getElementById("senderinput").value;
}
str=str.toUpperCase();
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("error").innerHTML=xmlhttp.responseText;
if(xmlhttp.responseText == "Einsender existiert nicht.")
{
document.getElementById("generate").disabled = true;
}
else
{
document.getElementById("generate").disabled = false;
}
}
}
xmlhttp.open("GET","checkSender.php?s="+str,true);
xmlhttp.send();
}
checkSender.php からの応答は、「Einsender existiert nicht.」のいずれかです。または空の文字列。
助言がありますか?
編集:
PHP コード:
<?php
require 'classes/DBHandler.php';
$DBHandler = new class_DBHandler();
$s = $_GET['s'];
$query="<Statement with $s as parameter>";
$Data = $DBHandler->GetData($query);
if(intval($Data[0]['COUNT']) >= 1)
{
echo "";
}
else
{
echo "Einsender existiert nicht.";
}
?>
HTML コード:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="style.css">
<script src="inc/checkSender.js"></script>
<title>MarPro</title>
</head>
<body>
<div class="main">
<div class="debug" id="ana">
</div>
<div class="headline">
<h1>MarPro</h1>
</div>
<div class="result">
<div class="menu">
<form action="" method="post" name="senderform">
<p>Einsender: <input type="text" name="sender" onkeyup="checkSender(this.value)"></p>
<p id="error"></p>
<p><input type="submit" name="generate" value="Generieren" id="generate" disabled></p>
</form>
</div>
</div>
</div>
</body>
</html>
前もって感謝します!
マルコ・フロスト