En utilisant var_dump($_POST);
, j'obtiens le résultat suivant:
array(2)
{
["data"] => array(2)
{
["title"] => "XXX"
["server"] => "XXXXXX"
}
["Itemid"] => "101"
}
Mon but est d'obtenir la valeur server
. Je peux facilement y parvenir en utilisant:
$_POST['data']['server'];
Après avoir fouiné, j’ai trouvé que l’utilisation de can peut être utilisée:
$array = $input->post->getArray(array());
$server = $array['data']['server'];
Est-ce la meilleure approche pour JInput
ou y a-t-il quelque chose de mieux?
Cela devrait fonctionner:
$values = $app->input->getArray(array('data'=>'array'));
echo $values['data']['server'];
Veuillez voir que je n'ai pas mentionné spécifiquement la variable post, car elle peut récupérer les valeurs get et post. Si vous devez obtenir une valeur d'un super global spécifique, tel que post, vous pouvez utiliser quelque chose comme $app->input->post
Vous pouvez récupérer plusieurs valeurs en transmettant leurs noms et leur type de données au format ci-dessus. De cette façon, vous pouvez obtenir exactement ce que vous voulez au lieu d'obtenir des données brutes potentiellement dangereuses. Mentionnez toujours le type de données dont vous avez besoin.
Tu pourrais essayer:
$data = $input->post->get('data', array(), 'ARRAY');
$server = $data['server'];
Je n'ai pas de terrain de jeu pour tester cela, mais je pense que cela fonctionne.