簡體   English   中英

數據庫查詢后啟用/禁用按鈕

[英]Enabling/Disabling a button after database query

我想禁用或啟用按鈕,具體取決於數據庫查詢的結果。 但我不知道怎么做。 從一個例子中,我設法顯示一個文本(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>

提前致謝!

馬可弗羅斯特

我認為您應該嘗試使用警報來查看“responseText”的樣子。 它可能不是兩個預期的值,因為如果它是那么你會得到所需的結果。

我找到了解決方案。

問題是“echo”在打印字符串后添加了空格和換行符。 所以在檢查它之前我必須像這樣操作字符串:

String.trim(xmlhttp.responseText)

現在,它的工作原理。

if(String.trim(xmlhttp.responseText) === "Einsender existiert nicht.")
{
    foo();
}
else
{
    bar();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM