我一直在学习AJAX并从我的本地服务器发出第一个请求,只请求XML或HTML文件,没什么太难的。我现在正在使用PHP,而且我理解它很好,它与使用XML / HTML没有太大区别。
在浏览教程的过程中,我看到了一些将信息返回给JavaScript的不同方法;我很好奇是否有“正确”的方式,甚至是“更正确”的方式。到目前为止,我遇到了三种方法:
someFile.php:
<?php
$foo = $_GET['bar'];
// manipulate $foo
exit($foo); // method 1
echo $foo; // method 2
// method 3:
?>
<div id='baz'>
<p>
Some output to be returned to JavaScript as the 'responseText'
property of the AJAX request.
</p>
<p>
<?php echo $foo ?>
</p>
</div>
我只是不确定将信息从服务器返回到浏览器的过程。什么都回来了?如果这是一个人们实际应该访问的页面,那么会显示什么?谢谢你的帮助!
答案 0 :(得分:5)
您需要将PHP脚本视为生成浏览器请求的HTML / JSON / XML文档的程序。在AJAX中,浏览器也是如此:它为文档请求某个URL。只有它可能只是一个片段,或者您将使用JavaScript集成到页面中的JSON。
对于一般的AJAX,即使我到目前为止还没有看到“退出(...)”方法,这两种方法都不正确。无论生成什么文档都可以。
关于最佳做法,您最终可能希望从文档的生成中分离计算。但我猜你应该首先获得更多基本PHP,HTML,AJAX等的经验。当你编写的应用程序变得如此之大以至于你开始难以找到代码时,你可能想看一下MVC PHP的框架,它解决了分离计算(业务/模型逻辑)和文档生成(视图)的问题。我听说Symfony很受欢迎。
答案 1 :(得分:1)
我通常有多个值要从服务器发回,所以我使用:
<?php echo json_encode(array('name' => 'Michael', 'email' => 'michael@example.com'); ?>
然后我可以像对象一样轻松地访问它们。
alert(response.name);
尝试使用jQuery等JS库。这很容易。
答案 2 :(得分:0)
我一直在做的是
<?php
header('Content-type: text/plain; charset=utf-8');
echo $foo;
exit;
?>
(是的,我知道在这个例子中我不需要使用exit
)
答案 3 :(得分:-1)
如果您想让人们直接访问该页面,则上述代码可以正常工作。但是如果你想保护页面jut放在页面顶部if(_POST ['somevalue'] =='login')和$ ajax在POST中发送数据。如果你知道例如jQuery ajax onSuccess $(div).html(data)!!剩下的部分是相同的!