获取在jquery触发器事件中传递的变量的值

时间:2016-11-15 09:28:50

标签: php jquery

我的主页:

  $(function(){
      $('.controls').click(function(){
        var id = $(this).attr('id');  //which in this case will be "pets"
        $.ajax({
            type:"POST",
            data:"page="+id,
            url:"controller.php",
            success:function(result){
              $('#content').html(result);
            }
        });
      });
    });

 </script>

 if (isset($_GET['myFave'])){
 ?>
 <script>

  $(function(){
    var animal = "<?php echo $_GET['myFave'];?>";
    $('#pets').trigger('click',[{'myFave':animal}]);
  });
 </script>
<?php
 }
?>

Controller.php这样

  $page = $_POST['page'];   //which will be "pets"
  require_once($page.".php"); 

pets.php

   <table align='center'>
    ////some data
   /// how do i access trigger here?

如果用户点击了网址http://server.com?myFave=dog

在我的主页上我需要触发点击“宠物”。

在主页上:

我如何访问pets.php触发器中传递的参数的值?

1 个答案:

答案 0 :(得分:1)

您没有将该变量的值发送给controller.php,所以现在您无权访问它。

要发送它,您可以执行以下操作:

主页:

$(function(){
      $('.controls').click(function(event, myFave){
                                           ^^^^^^ get the additional parameters you might send in
        var id = $(this).attr('id');  //which in this case will be "pets"
        $.ajax({
            type:"POST",
            // Send all data to the server
            data: {page: id, myFave: myFave},
                             ^^^^^^^^^^^^^^ also send this key-value pair
            url:"controller.php",
            success:function(result){
              $('#content').html(result);
            }
        });
      });
    });

 </script>

 if (isset($_GET['myFave'])){
 ?>
 <script>

  $(function(){
    var animal = "<?php echo $_GET['myFave'];?>";
    $('#pets').trigger('click',[animal]);
                               ^^^^^^^^ Add the extra parameter values
  });
 </script>
<?php
 }
?>

然后您可以在pets.php中访问它:

$myFave = isset($_POST['myFave']) ? $_POST['myFave'] : null;

或者,您可以使用会话在请求之间将该值保留在服务器上。