我一直在寻找最好的方式来衔接javascript,从Ajax获取来自php的数据。同时尽量保持代码行数最小且速度最快。 我想出了一种通过Object传递AJAX值的方法,所以它可以被改变,就好像它通过引用传递然后发回。但到目前为止,我只能做到这一点,因为在AJAX完成之前数据将不可用。HTML/AJAX/PHP同步和谐?可以异步工作吗?
积分是: 我一直在寻找一种简单的方式访问我所有的PHP内容与JavaScript。 如果愿意,可以构建一个简单的JavaScript(GetSomePHPstuff)API。
由于我是网络编程的新手,我很想听到一些关于此的输入和反馈。 这就是我想出的。
在这个例子中,我发送一个文本值从html通过JavaScript到ajax到PHP和PHP发回到ajax回到JavaScript回到我的HTML页面。
这是我们简单的HTML类型文件。
的test.html
<script language="javascript" src="ajax.js"></script>
<input type="text" id="text"/>
<input type="button" value="Return Text"
onClick="alert(ajaxReturnText(document.getElementById('text').value));"/>
这里是AJAX/javascript文件。
AJAX.js
function ReturnText(input, output){
if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
output.value = xmlhttp.responseText;
}
}
xmlhttp.open("GET","php.php?text="+input,false);
xmlhttp.send();
}
function ajaxReturnText(input){
var output = new Object();
ReturnText(input, output);
return output.value
}
这里是PHP文件
php.php
<?php
function ReturnText($text){
return $text;
}
if($text = $_GET["text"]){
echo ReturnText($text);
die();
}
?>
先生/女士,你有没有听说[jQuery](http://jquery.com/)。 – Blender
首先,我建议你使用JavaScript库来避免编写这么多的“每个浏览器”代码。这是几个JS框架已经解决的问题。 – MarioRicalde
如果不使用其他库,我们如何才能使此代码异步工作。 – aquawicket