Variable innerhalb von Funktion abrufbar
jan
- javascript
Hi!
Ich brauch mal hilfe. Wie schaffe ich es, dass innerhalb der funktion handleHttpResponse die variable "nr" definiert ist? Ich übermittle sie mit dem Aufruf von requestCustomerInfo.
Vielen Dank!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Customer Account Information</title>
<script type="text/javascript">
var url = "GetAddressData.php?id="; // The server-side script
function handleHttpResponse() {
if (http.readyState == 4) {
if(http.status==200) {
var results=http.responseText;
document.getElementById('divCustomerInfo'+nr).innerHTML = results;
}
}
}
function requestCustomerInfo(nr) {
var sId = document.getElementById("txtCustomerId"+nr).value;
http.open("GET", url + escape(sId), true);
http.onreadystatechange = handleHttpResponse;
http.send(null);
}
function getHTTPObject() {
var xmlhttp;
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}
else if (window.ActiveXObject){
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
if (!xmlhttp){
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
}
return xmlhttp;
}
var http = getHTTPObject(); // We create the HTTP Object
</script>
</head>
<body>
<p>Enter customer ID number to retrieve information:</p>
<p>Customer ID: <textarea id="txtCustomerId1"></textarea></p>
<p><input type="button" value="Get Customer Info" onclick="requestCustomerInfo(1)" /></p>
<div id="divCustomerInfo1"></div>
<p>Customer ID: <textarea id="txtCustomerId2"></textarea></p>
<p><input type="button" value="Get Customer Info" onclick="requestCustomerInfo(2)" /></p>
<div id="divCustomerInfo2"></div>
</body>
</html>
Ich brauch mal hilfe. Wie schaffe ich es, dass innerhalb der funktion handleHttpResponse die variable "nr" definiert ist? Ich übermittle sie mit dem Aufruf von requestCustomerInfo.
Du Kannst sie z.b. als Parameter übergeben:
function requestCustomerInfo(nr) {
var sId = document.getElementById("txtCustomerId"+nr).value;
http.open("GET", url + escape(sId), true);
http.onreadystatechange = function() { handleHttpResponse(nr); };
Struppi.
Hi Struppi,
danke genau das hatte mir gefehlt. Funktioniert nun super. Danke!
Gruß
Jan
Hi
Im Sinne des SELF kannst du dich über «closures» und «anonyme Funktionen» informieren oder hier die Lösung abkupfern:
function requestCustomerInfo(nr) {
var sId = document.getElementById("txtCustomerId"+nr).value;
http.open("GET", url + escape(sId), true);
http.onreadystatechange = function() {
if (http.readyState == 4) {
if(http.status==200) {
var results=http.responseText;
document.getElementById('divCustomerInfo'+nr).innerHTML = results;
}
}
};
http.send(null);
}
Gruss,
nam