如何将数据从 JSON 传递到 PHP 函数


how to pass data from json to a php function?

[registration] => Array
    (
        [first_name] => test
        [location] => Array
            (
                [name] => Santa Ana
                [id] => 1.08081209215E+14
            )
        [gender] => female
        [password] => 123654789
    )

我需要使用以下方法将该数据插入数据库:

$carray = fns_create_talent($login, $pass, $gender, $name);

关于如何将它们从一个地方带到另一个地方的任何想法?

我在想我需要将数组值分配给后变量。 也许:

$login = registration.first_name...

有什么想法吗?谢谢

$login = $json['registration']['first_name']

你展示的不是JSON,而是PHP的数组。我假设这是您要发送到服务器的数据的结构。

你可以这样做(记住,JavaScript 中没有关联数组!):

  • 在Javascript方面做类似的事情:

    var data = {
        'registration': {
            'first_name': 'test',
            'location': {
                'name': 'Santa Ana',
                'id': '1.08081209215E+14'
            },
            'gender': 'female',
            'password': 123654789
        }
    }
    
  • 然后在例如 jQuery .post() 中使用 data 作为第二个参数。

  • 在 PHP 端,只需在读取多维关联数组时从$_POST读取即可。在这种情况下,它应该类似于:

    // I have made assumption here (you do not have
    // 'login' variable in your example)
    $login = $_POST['registration']['first_name'];
    $pass = $_POST['registration']['password'];
    $gender = $_POST['registration']['gender'];
    $name = $_POST['registration']['first_name'];
    $carray = fns_create_talent($login, $pass, $gender, $name);
    

给你。

已编辑:

其中$arr是您提交的数组。

$carray = fns_create_talent( 
    /* your login var */,
    $arr['registration']['password'],
    $arr['registration']['gender'],
    $arr['registration']['first_name']
);

我在数组中看不到您的登录名,所以我只是为登录 var 添加注释,但您应该明白这一点。