【问题标题】:Posting an array in php(smarty)在php中发布一个数组(聪明)
【发布时间】:2010-09-18 16:49:42
【问题描述】:

我正在尝试在一个表单中发布多个答案(使用复选框)。问题是选择您可用的月份,这是我的代码...

$smarty->assign('month', array( '1' => 'January',  '2' => 'February',   '3' => 'March',  '4' => 'April',   '5' => 'May',  '6' => 'June',   '7' => 'July',  '8' => 'August',   '9' => 'September',  '10' => 'October'
                                                    ,   '11' => 'November',  '12' => 'December' )    );

那么我用来发布值的行如下...

<span style="color:#000000;">'($_POST['monthsAvailable']) .'</span>

但是,当我收到电子邮件时,它只显示“数组”。我想知道发布数组的正确格式是什么?任何建议都非常感谢!

【问题讨论】:

    标签: php arrays forms smarty


    【解决方案1】:

    如果$_POST['monthsAvailable'] 然后打印它只会打印一个数组。定义一个类似这样的函数:

    function printMonths($array){
      global $smarty;
      $out = '';
      foreach ($monthIndex in $array){
        $out .= $smarty['month'][$month].' ';
      }
      return $out;
    }
    
    ...
    
    <span style="color:#000000;">'(printMonths($_POST['monthsAvailable'])) .'</span>
    

    如果 $_POST['monthsAvailable'] 已经包含月份的名称,只需使用 explode()

    【讨论】:

      【解决方案2】:

      尝试使用Smarty::foreach

      服务器端php

      <?php
      $months = array( 
        '1' => 'January',
        '2' => 'February',
        '3' => 'March',
        '4' => 'April',
        '5' => 'May',
        '6' => 'June',
        '7' => 'July',
        '8' => 'August',
        '9' => 'September',
        '10' => 'October',
        '11' => 'November',
        '12' => 'December' );
      
      $smarty->assign('months', $months);
      $smarty->assign('monthsAvailable', $_POST['monthsAvailable']);
      ?>
      

      Smarty 模板

      <ul>
      {foreach from=$monthsAvailable item=mIndex}
          <li>{$months[$mIndex]}</li>
      {/foreach}
      </ul>
      

      如果 $_POST['monthsAvailable'] 定义为月份索引数组,它应该可以工作

      $_POST['monthsAvailable'] = array('1','10','12');
      

      【讨论】:

      • 感谢伊戈尔的帮助。现在就试试。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      • 2012-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多