0

名を入力するための入力ボックスを含む html ファイルがあります。クリックすると、XML ファイルを読み込む JavaScript 関数が実行され、一致するファイルがあるかどうかが確認されます。一致する場合は、一致する連絡先情報と共に表に表示されます。私はこれをうまくやることができます。

ただし、一致がない場合はアラートも表示する必要があります。それが「連絡先が存在しない場合」です。

さて、私のコードの for ループは innerHTML を混乱させますが、これは十分に公平です。その特定のコードを何度もループし、内部のコードが解析されます。これが、innerHTML がループの外にある理由です。

しかし、連絡先が存在しない場合、テーブルが呼び出される前にメッセージを表示したいと考えています。

それはおそらく非常に単純なことですが、再び一日中私を回避してきました.

私のコードは次のとおりです。

<script language="JavaScript" type="text/javascript">
function loadXMLDoc(dname)
{
    if (window.XMLHttpRequest)
    {
        xhttp=new XMLHttpRequest();
    }
    else
    {
        xhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xhttp.open("GET",dname,false);
    xhttp.send();
    return xhttp.responseXML;
} 
function searchXML()
{
    xmlDoc=loadXMLDoc("Contact.xml");
    x=xmlDoc.getElementsByTagName("firstname");
    input = document.getElementById("input").value;
    size = input.length;
    divText =  "<table border=1><tr><th>First Name</th><th>Last Name</th><th>Phone</th><th>Street</th><th>City</th><th>State</th><th>Postcode</th></tr>";
    if (input == null || input == "")
    {
        document.getElementById("results").innerHTML= "Please enter a character or name!";
        return false;
    }
    for (i=0;i<x.length;i++)
    {
        startString = firstname.substring(0,size);
        if (startString.toLowerCase() == input.toLowerCase())
        {
            firstname=xmlDoc.getElementsByTagName("firstname")[i].childNodes[0].nodeValue;
            lastname=xmlDoc.getElementsByTagName("lastname")[i].childNodes[0].nodeValue;
            phone=xmlDoc.getElementsByTagName("phone")[i].childNodes[0].nodeValue;
            street=xmlDoc.getElementsByTagName("street")[i].childNodes[0].nodeValue;
            city=xmlDoc.getElementsByTagName("city")[i].childNodes[0].nodeValue;
            state=xmlDoc.getElementsByTagName("state")[i].childNodes[0].nodeValue;
            postcode=xmlDoc.getElementsByTagName("postcode")[i].childNodes[0].nodeValue;
            divText = divText + "<tr><td>" + firstname + "</td><td>" + lastname + "</td><td>" + phone + "</td><td>" + street + "</td><td>" + city + "</td><td>" + state + "</td><td>" + postcode + "</td></tr>";
            }
    }
    //insert does not exist code here
    document.getElementById("results").innerHTML= "<h2>The contact does not exist.</h2>";
    return false;
    //end insert
    divText =  "<h1>The contact details are:</h1><br />" + divText + "</table>";
    document.getElementById("results").innerHTML= divText;
}
</script>

私のHTML本文:

<body>
First Name: <input type="text" name="firstname" id="input">
<br />
<input type="submit" value="Submit" onClick="searchXML()">
<br />
<br />
<div id="results">
</div>
</body>

助けていただければ幸いです。

ありがとう

4

1 に答える 1