markus: RE:RE:problem mit variablen übergabe

Beitrag lesen

Was willst Du erreichen? Bzw. was erwartest Du, soll an die Funktion processResponse übergeben werden?

an processResponse() soll der Wert von kekser weitergegeben werden.
Ich will halt, dass wenn sich xmlHttp.onreadystatechange ändert, die function processresponse() aufruft...und dabei dann der wert von kekser übergeben wird, sodass kekser dann in der processdata() an document.getElementById() übergeben wird und dann der Inhalt,am Tag mit der Id=(hier:lesen), durch AJAX ersetzt wird.

gesamter code:

//-#- code stammt von www.get-the-code.de-#-//

// global xmlhttprequest object
var xmlHttp = false;
/** AJAX functions **/
// constants
var REQUEST_GET        = 0;
var REQEST_POST        = 2;
var REQUEST_HEAD    = 1;
var REQUEST_XML        = 3;
/**
 * instantiates a new xmlhttprequest object
 * @return xmlhttprequest object or false
*/
function getXMLRequester( ){
    var xmlHttp = false;
    // try to create a new instance of the xmlhttprequest object
    try
    {
        // Internet Explorer
        if( window.ActiveXObject )
        {
            for( var i = 5; i; i-- )
            {
                try
                {
                    // loading of a newer version of msxml dll (msxml3 - msxml5) failed
                    // use fallback solution
                    // old style msxml version independent, deprecated
                    if( i == 2 )
                    {
                        xmlHttp = new ActiveXObject( "Microsoft.XMLHTTP" );
                    }
                    // try to use the latest msxml dll
                    else
                    {

xmlHttp = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );
                    }
                    break;
                }
                catch( excNotLoadable )
                {
                    xmlHttp = false;
                }
            }
        }
        // Mozilla, Opera und Safari
        else if( window.XMLHttpRequest )
        {
            xmlHttp = new XMLHttpRequest();
        }
    }
    // loading of xmlhttp object failed
    catch( excNotLoadable )
    {
        xmlHttp = false;
    }
    return xmlHttp ;
}

/**
 * sends a http request to server
 * @param strSource, String, datasource on server, e.g. data.php
 * @param strData, String, data to send to server, optionally
 * @param intType, Integer,request type, possible values: REQUEST_GET, REQUEST_POST, REQUEST_XML, REQUEST_HEAD default REQUEST_GET
 * @param strData, Integer, ID of this request, will be given to registered event handler onreadystatechange', optionally
 * @return String, request data or data source
 */
function sendRequest( kekser , strSource, strData, intType, intID ){
    if( !strData )
        strData = '';

// default type (0 = GET, 1 = xml, 2 = POST )
    if( isNaN( intType ) )
        intType = 0; // GET

// previous request not finished yet, abort it before sending a new request
    if( xmlHttp && xmlHttp.readyState )
    {
        xmlHttp.abort( );
        xmlHttp = false;
    }
    // create a new instance of xmlhttprequest object
    // if it fails, return
    if( !xmlHttp )
    {
        xmlHttp = getXMLRequester( );
        if( !xmlHttp )
            return;
    }

// parse query string
    if( intType != 1 && ( strData && strData.substr( 0, 1 ) == '&' || strData.substr( 0, 1 ) == '?' ) )
        strData = strData.substring( 1, strData.length );

// data to send using POST
    var dataReturn = strData ? strData : strSource;

switch( intType )
    {
        case 1:    // xml
            strData = "xml=" + strData;
        case 2: // POST
            // open the connection
            xmlHttp.open( "POST", strSource, true );
            xmlHttp.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
            xmlHttp.setRequestHeader( 'Content-length', strData.length );
            break;
        case 3: // HEAD
            // open the connection
            xmlHttp.open( "HEAD", strSource, true );
            strData = null;
            break;
        default: // GET
            // open the connection
            var strDataFile = strSource + (strData ? '?' + strData : '' );
            xmlHttp.open( "GET", strDataFile, true );
            strData = null;
    }

// set onload data event-handler
    //###--wird hier nich übergeben warum?--###
    xmlHttp.onreadystatechange = new Function ( "processResponse( "+intID+", "+ kekser +" )" );
    // send request to server
    // window.alert(kekser);
    xmlHttp.send( strData );    // param = POST data
    return dataReturn;
}

/*
 * process the response data from server
 * @param intID, Integer, ID of this response
 */

function processResponse( intID, kekser ){

window.alert(kekser);

// status 0 UNINITIALIZED open() has not been called yet.
    // status 1 LOADING send() has not been called yet.
    // status 2 LOADED send() has been called, headers and status are available.
    // status 3 INTERACTIVE Downloading, responseText holds the partial data.
    // status 4 COMPLETED Finished with all operations.
        switch( xmlHttp.readyState ){

case 0:       // uninitialized
        case 1:          // loading
        case 2:       // loaded
        case 3:            // interactive
            break;
     case 4:
            // check http status
            if( xmlHttp.status == 200 )    // success
            {

processData( kekser, xmlHttp, intID );
            }
            // loading not successfull, e.g. page not available
            else
            {
                if( window.handleAJAXError )
                    handleAJAXError( xmlHttp, intID );
                else
                    alert( "ERROR\n HTTP status = " + xmlHttp.status + "\n" + xmlHttp.statusText ) ;
            }

}
}
##########################-ENDE-CODE-#############################

############################-AUFRUF-DATEI-#########################
.....
 <script src="js/ajax.js" type="text/javascript"></script>
 <script type="text/javascript" language="javascript">
window.setInterval("sendRequest('lesen', 'lesen.php' )", '1500');

function processData(kekser, xmlHttp, intID ){
 document.getElementById(kekser).innerHTML = xmlHttp.responseText;
}
 </script>
</head>
<body class='chat' onload="sendRequest('lesen', 'chat_lesen.php' )">

....