分割href以获取变量并将其发送到php文件

时间:2017-11-06 08:25:43

标签: php jquery html ajax

我为每个标签都有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);
?>

1 个答案:

答案 0 :(得分:0)

var href = window.location.search.replace('?', '');
href.split('&');

这里window.location.search只返回url的查询字符串部分,使用replace会使'?'消失。通过拆分url相对于'&amp;'来获取数组中的所有参数。