【问题标题】:how to pass data from json to a php function?如何将数据从 json 传递到 php 函数?
【发布时间】:2011-05-18 18:13:37
【问题描述】:
[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);

知道如何将它们从一个地方带到另一个地方吗?

我在想我需要将数组值分配给 post vars。也许:

$login = registration.first_name...

有什么想法吗? 谢谢

【问题讨论】:

  • 你所拥有的不是 JSON:json.org
  • 好点,它只是一个数组

标签: php json post


【解决方案1】:
$login = $json['registration']['first_name']

【讨论】:

  • $json 应该是您给我们的值的变量。
【解决方案2】:

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

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

  • 在 Javascript 端做类似的事情:

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

  • 在 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);
    

给你。

【讨论】:

  • -1 array('key' => 'value') 一个关联数组。此外,在强烈暗示不存在这样的事情之后,您说存在多维数组是自相矛盾的。
  • @Gabi 是的,这是一个错字:我的意思是“JavaScript 中没有关联数组”,这是真的,接下来我将展示 OP 可能指的 JSON 对象 - 对于某些人很明显,假设我说的是 JavaScript。您现在会这么好心并删除您的反对票吗?
【解决方案3】:

已编辑:

$arr 是你提交的数组。

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

我没有在数组中看到您的登录信息,所以我只是为登录变量添加了注释,但您应该明白了。

【讨论】:

  • 我的错,不是 json,我很困惑,它只是一个数组,但问题仍然适用
  • 编辑为不是json,只是处理数组
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-08
  • 1970-01-01
  • 1970-01-01
  • 2017-01-14
  • 1970-01-01
  • 2017-11-10
  • 1970-01-01
相关资源
最近更新 更多