无法将值传递给PHP变量

时间:2017-07-27 09:29:10

标签: javascript php ajax

我一直试图将值从javascript传递给php变量。我可以在来自另一个php文件的url时传递数据,但是我无法在同一页面上传递数据。

以下是javascript代码:

<script>

$(document).ready(function(){   
    $(document).on('click', '#getUser', function(e){    
        e.preventDefault();
        var uid = $(this).data('id'); // get id of clicked row

        $.ajax({
            url: 'user.php',
            type: 'POST',
            data: 'id='+uid,
            success: function(data) {
    // the following will be executed when the request has been completed
                alert('Variable id has been sent successfully!');
              }
        })
    });
}); 
</script>

3 个答案:

答案 0 :(得分:2)

由于您在POST中使用ajax类型。所以

data: 'id='+uid,

需要

data: {"id":uid}, //or you can do data: {id:uid},

user.php 页面上: -

<?php
echo $_POST['id'];//check what it outputs in your console

答案 1 :(得分:1)

您应该将JSON传递给您的服务器,例如:

而不是

data: 'id='+uid 

使用

data: {"id":uid}

答案 2 :(得分:0)

这是伪代码,可帮助您了解如何在AJAX请求中传递参数:

var paramsToSend = {};
paramsToSend['data1'] = 'data1';
paramsToSend['data2'] = 'data2';

$.ajax({
    ...
    data: {params:JSON.stringify(paramsToSend)},
    ...
});

users.php 中,您可以:

$parameters = json_decode($_POST['params']

要将它们转换为数组并在$ _POST中包含该数组,您可以:

$_POST = (array) $parameters;