我创建了一个Ajax导航系统,但是当我想发送一个变量时,我遇到了一个问题。 我有像这样的index.php
<script src="navigation.js" type="text/javascript"></script>
<div id="pageContent"></div>
<a href="#page1">page1</a>
<a href="#profile">profile</a>
这是navigation.js
$(document).ready(function(){
checkURL();
$('a').click(function (e){
checkURL(this.hash);
});
setInterval("checkURL()",250);
});
var lasturl="";
function checkURL(hash)
{
if(!hash) hash=window.location.hash;
if(hash != lasturl)
{
lasturl=hash;
loadPage(hash);
}
}
function loadPage(url)
{
url=url.replace('#','');
$.ajax({
type: "POST",
url: "load_page.php",
data: 'page='+url,
dataType: "html",
success: function(msg){
if(parseInt(msg)!=0)
{
$('#pageContent').html(msg);
}
}
});
}
这是load_page.php页面:
<?php
if(!$_POST['page']) die("0");
$page = $_POST['page'];
include('pages/'.$page.'.php');
?>
这就是问题:当我加载profile.php页面时,我希望通过GET看到值......例如:
<?php
$nome_utente = $_GET['user'];
if(!$_GET['user']) {
print 'Attention! You have to insert a username';
}
else
{
print $nome_utente;
}
?>
为此,我尝试更改index.php中的链接
<a href="#profile?user=test">profile</a>
但这不起作用,因为load_page.php找不到“profile?user = test.php”页面。 如何从index.php中的链接发送profile.php中的GET变量? 我要编辑JS或PHP代码吗?
答案 0 :(得分:1)
混合get / post变量被认为是不好的做法,但很容易做到:
function loadPage(url) {
url=url.replace('#','');
$.ajax({
type: "POST",
url: "load_page.php?user=whatever_you_want_here",
^^^^^^^^^^^^^^^^^^^^^^^^^^^^---your 'get' query
另一个选项是将'user'参数添加到ajax数据行:
data: { page: url, user: whatever_you_want_here }
第一个会在$ _GET中提供'user',第二个会在$ _POST中提供它。