我正在开发的网站是这样构建的:
设置$_GET['module']时切换首页内容模块的功能,例如:
function switchmodules()
{
$module=$_GET['module'];
switch($module)
{
case 'getnews': news(); break;
default: def();
}
}如您所见,此开关为每个模块调用另一个函数。
例如,我编写的getNews()就是这样工作的:
function getNews()
{
$id=$_GET['id'];
if(!id)
{
//CODE TO LIST ALL NEWS
}
if(isset($id))
{
//CODE TO GET ONLY 1 NEWS BY ID
}
}因此,正如您所看到的,我并没有为每个模块使用唯一的文件;模块的所有操作都是唯一函数的一部分,在该函数中,将再次切换操作以更改结果。
如果我想从数据库中获取新闻,我应该使用这样的url:?index.php&module=getnews&id=1
我现在的问题是:
对于jQuery和$.ajax()方法,有没有一种方法可以使用这种基于get切换的函数的结构来获取新闻(例如)?或者我必须更改所有内容并为每个函数创建一个文件?
发布于 2012-04-15 04:04:09
您可以简单地通过$.ajax()调用相同的url。对于axjax调用,唯一需要更改的是不输出布局,而只输出新闻本身。
在php中,您可以检查ajax请求,如下所示
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
// dont output layout
}发布于 2012-04-15 04:07:42
如果这段代码是'test.php‘,你可以这样做:
<script>
$.get(
'/test.php',
{
module: 'news',
id: 1
},
function( data ) {
alert( data );
}
);
</script>js会向test.php发送GET请求,并带上所需的参数。然后,您的服务器脚本将决定如何处理请求。
发布于 2012-04-15 04:12:36
jQuery
$(document).ready( function() {
var form = '#my_awesome_form';
$(form + ' input[type=submit]').click(function(e) {
e.preventDefault();
$.ajax({
type: "GET",
url: 'index.php',
data: $(form).serialize(),
success: function( response ) {
alert('DONE!');
}
});
});
});HTML
<form id="my_awesome_form" // OTHERS PROPERTIES //>
// LOT OF FIELDS HERE //
<input type="submit" value="Send">
</form>https://stackoverflow.com/questions/10156891
复制相似问题