无法访问通过PHP中的Post方法发布的数组值

时间:2014-12-01 08:56:27

标签: php arrays arraylist

我已经创建了一个用户信息数组并将其发布到另一个页面以供使用..但是当我访问它时它不返回任何值..只返回A或r ..

任何好友都可以帮助我..

创建数组

  <?php 
    $datas= array(
    "Scountry"=>'ZA',
    "SName"=>$SName,
    "SCompany"=>$SCompany,
    "SAddress"=>$SAddress,
     "SAddress2"=>$SAddress2,
    "SAddress3"=>$SAddress3,
    "ssPlace"=>$fr[0],
    "sZip"=>$fr[1],
    "SPhone"=>$SPhone,
    "SMobile"=>$SMobile,
    "SEmail"=>$SEmail,
    "SFex"=>$SFex       
    );
    ?>

我的帖子表格

    <form action="submit.php" method="post" id="submit" name="submit">
   <input type="hidden" name="clientdata" id="clientdata" value="<?php print_r($datas); ?>">

   <input type="submit" value="Submit"/>
   </form>

我的访问代码submit.php

     <?php 
     $clientdata = $_POST['clientdata'];
    print_r($clientdata);
      ?>

当我用print打印时

      print_r($clientdata);

以下结果显示

       Array ( [Scountry] => ZA [SName] => name [SCompany] => adfsd [SAddress] => asdf [SAddress2] => adsf [SAddress3] => asdf [ssPlace] => adfddfd [sZip] => 0037 [SPhone] => 222222222 [SMobile] => 9926036842 [SEmail] => abc@gmail.com [SFex] => 1111111111)

我的问题是当我访问数组属性的特定值时,它不打印...

    echo $clientdata->Scountry;

没有结果显示

当我使用

    echo $clientdata[Scountry];

没有结果显示

任何身体帮助......

2 个答案:

答案 0 :(得分:1)

您必须使用字符串作为数组的键。密钥必须介于"之间,否则php会认为您正在寻找常量。

echo $clientdata["Scountry"];

<强>更新

您不能将print_r数据作为输入字段中的值进行打印,您必须将其序列化。这会从数组中创建一个json字符串。

<input type="hidden" name="clientdata" id="clientdata" value="<?php echo json_encode($datas); ?>">

现在,在您的代码中,您可以将此json字符串解码为对象:

$clientdata = json_decode($_POST['clientdata']);
echo $clientdata->Scountry;

答案 1 :(得分:0)

将您的数组内嵌并从表单中发布。

<form action="submit.php" method="post" id="submit" name="submit">
    <input type="hidden" name="clientdata" id="clientdata" value="<?php implode('@@#@@',$datas); ?>"> 
    <input type="submit" value="Submit" />
</form>

在你的PHP文件上:

<?php 
$clientdata = $_POST['clientdata'];
$clientArray = explode('@@#@@',$clientdata);
echo '<pre>';
print_r($clientArray);

echo $clientArray['Secondary'];
?>