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.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

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