im new in javascript and php , my goal is :RETURN string from xmlhttp responseText to a function return value.So i can use it with innerText or innerHTML method. the html code :
<script>
function loadXMLDoc(myurl){
var xmlhttp;
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();}
else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
xmlhttp.responseText;}
}
xmlhttp.open("GET",myurl,true);
xmlhttp.send();
}
</script>
The read-only XMLHttpRequest property responseText returns the text received from a server following a request being sent. A DOMString which contains either the textual data received using the XMLHttpRequest or null if the request failed or "" if the request has not yet been sent by calling send ().
The responseText property returns the server response as a JavaScript string, and you can use it accordingly:
var resultText = XMLHttpRequest.responseText; A DOMString which contains either the textual data received using the XMLHttpRequest or null if the request failed or "" if the request has not yet been sent by calling send().
The responseText property returns the server response as a JavaScript string, and you can use it accordingly: The XML HttpRequest object has an in-built XML parser. The responseXML property returns the server response as an XML DOM object. You will learn a lot more about XML DOM in the DOM chapters of this tutorial.
You can't.
Neither runs the code syncronous, nor would you return
anything to loadXMLDoc
but to the anonymous function which is the onreadystatechange handler.
Your best shot is to pass a callback function.
function loadXMLDoc(myurl, cb)
{
// Fallback to Microsoft.XMLHTTP if XMLHttpRequest does not exist.
var xhr = (window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"));
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4 && xhr.status == 200)
{
if (typeof cb === 'function') cb(xhr.responseText);
}
}
xhr.open("GET", myurl, true);
xhr.send();
}
And then call it like
loadXMLDoc('/foobar.php', function(responseText) {
// do something with the responseText here
});
Just return the responseText property or assign its value to a variable in closure.
Returning a value:
<script>
function loadXMLDoc(myurl) {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
return xmlhttp.responseText;
}
}
xmlhttp.open("GET", myurl, true);
xmlhttp.send();
return xmlhttp.onreadystatechange();
}
</script>
Using a closure:
<script>
var myValue = "",
loadXMLDoc = function (myurl) {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
return xmlhttp.responseText;
}
}
xmlhttp.open("GET", myurl, true);
xmlhttp.send();
myValue = xmlhttp.onreadystatechange();
};
</script>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With