Marsi: Tabelle erweitern mit JS und Ajax - Variable in getElementById()

Beitrag lesen

Hallo zusammen

Ich möchte gerne eine Tabelle in PHP programmieren, welche beim MouseOver durch zusätzliche Daten in einer darunterstehenden Zeile ergänzt wird. PHP und Ajax funktionieren, jedoch habe ich Probleme mit der Variable in getElementById(). Das Problem muss in der 3. Funktion liegen und oder in der Zeile "var ss = document.getElementById(idnr);".

Ganzes Skript:

<script language="javascript">

//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    } else if(window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        alert("Browser für diese Anwendung zu alt!");
    }
}

//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();

//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest(str) {
    if (searchReq.readyState == 4 || searchReq.readyState == 0) {
        searchReq.open("GET", 'details.php?search=' + str, true);
        searchReq.onreadystatechange = handleSearchSuggest(str);
        searchReq.send(null);
    }
}

//Called when the AJAX response is returned.
function handleSearchSuggest(rgid) {
    if (searchReq.readyState == 4) {
        var idnr = "search_suggest_"+rgid;
        var ss = document.getElementById(idnr)
        ss.innerHTML = '';
        var str = searchReq.responseText.split("\n");
        for(i=0; i < str.length - 1; i++) {
            //Build our element string.  This is cleaner using the DOM, but
            //IE doesn't support dynamically added attributes.
            var suggest = '<div>' + str[i] + '</div>';
            ss.innerHTML += suggest;
        }
    }
}

if (searchReq.readyState == 4) {
var ss = document.getElementById(idnr);
var str = searchReq.responseText.split("\n");
}
</script>

Aufruf erfolgt über
onmouseover='searchSuggest(".$rgid.");'

Die Daten werden anschliessend in <div id='search_suggest_".$rgid."'></div> geschrieben ($rgid steht für Rechnungs-Nummer).

Vielen Dank für Hilfe.

Liebe Grüsse aus der Schweiz.

Marcel