变量返回会话中的单词ARRAY


variable returns the word ARRAY in session

所以我有两个页面一个表单页面和一个发送页面。第一个页面启动一个会话,将项目数组存储到变量$mine中,如下所示

<? php session_start(); ?>
<?php foreach($items as $itemIndex => $item): ?>
        <?php $product->load($item->getProductId()); ?>
    <tr>
        <td >
          <?php #echo $item->getItemNumber(); ?>
          <?php echo $item->getFullDisplayName(); ?>
          <?php $_SESSION['mine'] = $mine; 
            $mine [] = $item->getFullDisplayName();
          ?>
        </td>

然后在第二次我将显示项目,除了它只返回单词ARRAY。

<?php
 session_start();
// Send the email
 $to = "packytagliaferro@gmail.com";
 $name = $_POST['name'] ; 
 $from = $_POST['email'] ; 
 $phone = $_POST['phone'] ; 
 $headers = "MIME-Version: 1.0'n";
 $headers .= "Content-type: text/html; charset=iso-8859-1'n";
 $headers .= "From: $from"; 
 $subject = "Pump Part Inquiry"; 
 $mine = $_SESSION['mine'];
 $flygt = $_SESSION['flygt'];
 $emailBody = "
  <html>
      <head>
        <style>
        </style>
      </head>
      <body>
        <h1> Pump Inquiry</h1>
        <h3>From:".$name."<h3>
        <h3>Phone:".$phone."<h3>
        <p>Minetuff Parts:".$mine."</p>
        <p>Flygt Parts:".$flygt."</p>
      </body>
  </html>";

 $send = mail($to, $subject, $emailBody, $headers); 
    if($send) 
        {header( "Location: http://fitter.henry-griffitts.com/fitter/success.php" );} 
    else 
     {print "We encountered an error sending your mail, please review your information"; } 
 ?>

当您正在制作$mine变量时,您正在放置[],这使其成为数组。所以即使你只输入了getFullDisplayName()它仍然是一个数组值为1

['Full Display Name']

所以当你试图回显变量时,它只是说它是一个数组

尝试回显$mine[0]

你可以将会话变量设置为字符串而不是只有1个值的数组

SESSION['mine'] = $item.getFullDisplayName()

我认为是因为您在设置$_SESSION['mine']后将值分配给$mine试试这个

 <?php 
         $mine [] = $item->getFullDisplayName();
         $_SESSION['mine'] = $mine; 
  ?>

我认为这是因为你试图输出数组$mine作为字符串。:

"<p>Minetuff Parts:".$mine."</p>""

您正在将一个数组存储到$_SESSION["mine"]:

$_SESSION['mine'] = $mine; 
$mine [] = $item->getFullDisplayName();

然后你试图将它添加到字符串中,这里:

$emailBody = "...<p>Minetuff Parts:".$mine."</p>...";
PHP的默认数组到字符串的转换是只返回一个字符串Array。如果你想要一个用逗号分隔的列表,可以这样做:
$mineString = implode(", ", $mine);
$emailBody = "...<p>Minetuff Parts:".$mineString."</p>...";

我想你已经把$_SESSION['mine'] = $mine;布置成这样了:

<?php session_start(); ?>
<?php $mine = array();?>
<?php foreach($items as $itemIndex => $item): ?>
        <?php $product->load($item->getProductId()); ?>
    <tr>
        <td >
          <?php #echo $item->getItemNumber(); ?>
          <?php echo $item->getFullDisplayName(); ?>
          <?php $mine[] = $item->getFullDisplayName(); ?>
        </td>
    </tr>
<?php endforeach;?>
<?php $_SESSION['mine'] = $mine;?>