我在会话变量中传递了一个数组。我需要将关键笔划传递给它才能返回值

时间:2016-05-06 08:02:58

标签: javascript php arrays session

我已将mysql查询中返回的数据存储到会话变量中。我可以使用$_SESSION['info'][][]提取我想要的内容。

我希望能够动态地从数组中检索值。用户将从下拉列表中选择数字(其中2个)。其中一个数字需要传递给数组的第一个元素,显然,第二个元素传递给第二个元素。然后,结果回显到屏幕上。

我需要在所有客户端执行此操作。像这样:

  • 获取按键的结果
  • 将其存储为$ a
  • 获取keypress b的结果
  • 将其存储为$ b
  • 将结果传递给echo $_SESSION['info'][$a][$b]

我可以得到一个关键笔划并将其传递给变量,甚至可能是第二个用我有限的知识但是将它们传递给会话变量并打印结果让我逃脱了。

enter code here$(document).ready(function() {
   $("#pcc").keyup(function() {
    var dInput = $(this).val();
    $n1=dInput;

    //$(".dDimension:contains('" + dInput + "')").css("display","block");
    });
});
$(document).ready(function() {
$("#pcp").keyup(function() {
    var dInput = $(this).val();
    $n2=dInput

    //$(".dDimension:contains('" + dInput + "')").css("display","block");
    });

});

我知道我可能一次只能阻止一个障碍。我知道这可以节省击键次数。我通过将值传递给警报来测试它。

最后进行。我正在使用此代码从输入字段传递变量:

     $(document).ready(function(){

      $("#pcp").keyup(function(){
    var value = $("#pcp").val();
    n1= value;

      });
      $("#pcp").keyup(function(){
      var value = $("#pcc").val();
      n2= value;

     matrix('n1','n2');
    });

   });

我知道它被传递给matrix()因为我将变量从矩阵中转移到控制台,如下所示:

      function matrix(){
    // getting values from key presses

    //console.log(n1, n2);
     $.ajax({
    url: "matrix.php",
    method: 'GET',
    dataType: 'json',
    data: { a: n1, b: n2 },
    success: function(data) {

      var response = data.response;
}

     $_SESSION['arrayOfMatrix'][$a][$b]= response;

       });      

我也知道变量已经传递,因为我在控制台中得到了变量未定义的错误,现在我没有。所以2件积极的事情。 然而,就目前而言似乎能够走了。我似乎没有得到任何回报。我已经尝试将console.log放在matrix.php中,但是我没有得到任何东西,所以我猜它只是没有触发并向matrix.php发送数据。有没有其他测试可以看到它失败的地方?我觉得我很接近它。

};

1 个答案:

答案 0 :(得分:2)

你需要的是AJAX。您需要创建一个PHP脚本,通过$a$b请求为GETPOST提取两个值。然后,您可以使用jQuery的$.ajax异步调用该脚本并获得结果。

所以首先你需要一个PHP脚本(让我们为了这个例子而调用它: example.php )。

example.php 中,您可以执行以下操作:

<?php
session_start();
$a = $_GET['var_a'];
$b = $_GET['var_b'];
//do some checking of the two above variables here
$response = array(
    'response' => $_SESSION['info'][$a][$b];
);
echo json_encode($response);

如果您更喜欢使用$_POST请求,则可以使用$_GET替换POST

下一步涉及相当多的JavaScript,所以当你同时填充$ n1和$ n2时,你可以使用$.ajax发送POST请求:

$.ajax({
    url: <path-to-example.php>,
    method: 'get',
    dataType: 'json'
    data: { var_a: $n1, var_b: $n2 }
}).done(function(data){
    var response = data.response;
    //$_SESSION['info'][$a][$b] is now in response
});

如果'get'请求

,您可以将'post'替换为POST