我为每个标签都有3个标签和href。我想将“page”变量发送到php文件进行处理,但是当我使用代码时,php文件可以获得$ _GET ['page']的值。我使用“print_r($ _ GET),它向我展示了像Array([index.php?page] => 1)发送的数据,从中我可以知道发送到服务器的变量不是'page'
var data = $(this).attr("href");
我尝试使用
拆分href字符串var data = $(this).attr('href').split('?');
print_r($ _ GET)的结果是Array([undefined] =>)。到现在为止,我不知道如何解决这个问题! :(
这是我的index.php:
<!Doctype HTML>
<html>
<head>
<title>Test</title>
<meta charset="utf-8" />
<script src="js/jquery-3.2.1.min.js"></script>
</head>
<body>
<a href="index.php?page=1" class="page">Test page 1</a>
<a href="index.php?page=2" class="page">Test page 2</a>
<a href="index.php?page=3" class="page">Test page 3</a>
<div id="content_result" style="margin-left:5px; width: 990px; min-height: 600px; border:1px solid #000;">
</div>
<script type="text/javascript">
$(document).ready(function() {
//svar anchortag = $("a.page");
$("a.page").click(function(event) {
event.preventDefault();
var data = $(this).attr('href').split('?');
$.ajax({
type: 'GET',
url: 'page.php',
data: data,
success: function(data) {
$('#content_result').html(data);
}
});
});
});
</script>
</body>
</html>
这是我的page.php:
<?php
//$tam = $_GET['page'];
if(isset($_GET['page'])){
$page = $_GET['page'];
}
else{
$page = '';
}
if($page == '1'){
echo 'This is page 1!';
}elseif($page == '2'){
echo 'This is page 2!';
}elseif($page == '3'){
echo 'This is page 3!';
}else{
echo 'Pls choose page!';
}
print_r($_GET);
?>
答案 0 :(得分:0)
var href = window.location.search.replace('?', '');
href.split('&');
这里window.location.search
只返回url的查询字符串部分,使用replace会使'?'消失。通过拆分url相对于'&amp;'来获取数组中的所有参数。