无法将jquery数组传递给同一页面中的php变量

时间:2019-04-03 08:47:08

标签: javascript php jquery ajax

在此页面(rolemanage.php)上,单击时有一个按钮,它将触发脚本提供数组数据

按钮代码(rolemanage.php):

a href="<?= base_url('admin/roleaccess/') ?>" data-toggle="modal" data-target="#aksesModal" class="badge badge-warning aksesModal" data-id="<?= $r['id_lvl']; ?>" class="badge badge-warning">Akses</a>

onclick脚本(rolemanage.php)

$('.aksesModal').on('click', function() {

    const id = $(this).data('id');

    $.ajax({
        url: "<?= base_url('admin/getMenuid'); ?>",
        data: {
            id: id
        },
        method: 'post',
        dataType: 'JSON',
        success: function(data) {
            var strData = JSON.stringify(data);                
        }
    }); });

因此变量数据成功从admin / getMenuid获取数组,并在控制台中返回结果数组,如下所示:

(1) […] ​ 0: Object { id: "4", menu: "Barang Habis Pakai" } ​ length: 1

然后,我尝试成功使用json.stringify将该对象制成字符串:函数

和这样的结果:

[{"id":"3","menu":"Menu"}]

问题是:当我尝试使用以下命令在此页面(rolemanage.php)中调用strData时

var_dump(json_decode($_POST['strData']));

它显示未定义的索引strData。

然后如何获取strData值?

2 个答案:

答案 0 :(得分:1)

你不能。

  1. rolemanage.php运行
  2. HTTP服务器将结果发送到浏览器
  3. 浏览器运行JavaScript
  4. 角色访问运行
  5. HTTP服务器将结果发送到浏览器
  6. 您可以使用JavaScript处理结果

Ajax不涉及时间旅行。您无法使用第4步之前获得的数据来更改第1步中发生的事情。

在第6步中使用JavaScript进行处理(并使用新数据修改DOM),或者不使用Ajax而是使用常规表单提交。

答案 1 :(得分:0)

您应该执行另一个AJAX请求,并在其中传递strData作为参数。

此外,如果要将所有内容都保留在同一文件(rolemanage.php)中,则应编写一条if语句,检查strData是否存在并根据结果进行操作