Pereiti prie turinio

Rekomenduojami pranešimai

Neseniai pradėjau mokytis ajax'o, tad iškilo keli klausimai.

 

Čia mano index.php failas:

<html>
<body>
<script type="text/javascript">
var xmlhttp

function ajax()
{
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
 {
 alert ("Your browser does not support XMLHTTP!");
 return;
 }

var url = "try.php";
var name =  document.getElementById("name").value;
var age =  document.getElementById("age").value;
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("POST",url,"TRUE");
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
xmlhttp.send("name="+name+"&age="+age);
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
 {
 // code for IE7+, Firefox, Chrome, Opera, Safari
 return new XMLHttpRequest();
 }
if (window.ActiveXObject)
 {
 // code for IE6, IE5
 return new ActiveXObject("Microsoft.XMLHTTP");
 }
return null;
}

function stateChanged() {	

if (xmlhttp.readyState == 4) {

  var ats = xmlhttp.responseText;
  document.getElementById("atsk").innerHTML = ats;

}
}
</script>
<form>
<b id="answer"></b>
Tavo vardas: <input type="text" name="name" id="name"/><p>
Amzius: <input type="text" name="age" id="age"/><p>
<input type="button" value="Submit" onClick="ajax()">
</form> 
<span id="atsk"></span>
</body>
</html>

 

Ir try.php failas:

<?php

if(empty($_POST['name'])) { 

echo '<script type="text/javascript">document.getElementById("answer").innerHTML = "Įrašyk vardą, prašyčiau."</script>';

} else {

echo "<p>Hi ".$_POST['name'].", you're ".$_POST['age']." years old";

}

?>

 

Tad klausimas, kodėl, kai nėra įrašomas vardas nėra išmetamas tekstas "Įrašyk vardą, prašyčiau."? Ir šiaip, kodėl per xmlhttp.responseText galiu perduoti tik paprastą tekstą, bet ne javascript'ą?

Dėkoju.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Norėjau dar paklaust, kodėl nepavyksta man kreiptis į funkciją su setTimeout?

Štai kodai:

index.php

<html>
<body>   
<b id="klik">kuy54eredssdrva</b>
<script type="text/javascript">

var xmlhttp
function ajax()
{
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
 {
 alert ("Your browser does not support XMLHTTP!");
 return;
 }

var url = "try.php";
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,"TRUE");
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
xmlhttp.send(null);
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
 {
 // code for IE7+, Firefox, Chrome, Opera, Safari
 return new XMLHttpRequest();
 }
if (window.ActiveXObject)
 {
 // code for IE6, IE5
 return new ActiveXObject("Microsoft.XMLHTTP");
 }
return null;
}

function stateChanged() {	

if (xmlhttp.readyState == 4) {

	eval(xmlhttp.responseText);

}

}

</script>
<form>
<input type="button" value="laikas?" onClick="ajax()">
</form>
</body>
</html>

 

try.php

<?php

echo 'var kiek = 0; var t; 
function a() { 
kiek = kiek + 1; 
document.getElementById("klik").innerHTML = kiek; 
t=setTimeout("a()",1000); }
a();';

?>

 

Jei tą funkciją parašyčiau javascript'e tiesiog, tai man ji veiktų ir didėtų skaičiai, o dabar tik vieną kartą parodo vienetą ir daugiau nesikeičia.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 4 savaičių...

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...