Yii: 如何将 post 中的数据值 'form' 到同一页

Yii: How to post the data value from 'form' to the same page

我想将此表单中的值发送到同一页面,但提交按钮没有发送值

这是表格:

<form method="post" action="">
        <select name="b" value="<?=isset($_POST['b']) ? CHtml::encode($_POST['b']) : '' ; ?>">

            <option value="1">Januari</option>
            <option value="2">Februari</option>
            <option value="3">Mac</option>
            <option value="4">April</option>
            <option value="5">Mei</option>
            <option value="6">Jun</option>
            <option value="7">Julai</option>
            <option value="8">Ogos</option>
            <option value="9">September</option>
            <option value="10">Oktober</option>
            <option value="11">November</option>
            <option value="12">Disember</option>               
        </select>
        <input type="submit" value="Papar Statistik" /><hr />
    </form>

这是用来从上面的表格中获取数据值的函数:

<?php 

if (isset($_GET['b']) && !empty($_GET['b']))
    $current_month = $_GET['b'];
else
    $month = date('Y-m-d', time());
    $bulan = strtotime($month); // FUNCTION CONVERSION DATE KEPADA DAY
    $current_month = date("m", $bulan);

    $teacher = Yii::app()->user->getId();
    $jumlahStatistik_hadir = 0;

    for ($d = 1; $d <= 30; $d++){

      $statistik_hadir = Detail::model()->countByAttributes(array(
            'status' => '1',
            'date' => '2015-'.$current_month.'-'.$d.'',
            'teacher_id' => $teacher));

      $jumlahStatistik_hadir = 
          ($jumlahStatistik_hadir+$statistik_hadir);
    }
    print_r ($jumlahStatistik_hadir);
?>

如果您使用 POST 方法发送表单数据

<form method="post" action="">
    <select name="b">
        <option value="1">Januari</option>
        <option value="2">Februari</option>
    </select>
</form>

您可以期望 PHP 提供 $_POST 全局数据,而不是 post。

// This is correct
echo $_POST['b'];
// This is not correct
echo $_GET['b'];

注意: 而不是在 select 标签中使用 'value'。

   <select name="b" value="2">

您需要为所选值提供 selected 选项

<option value="1">Januari</option>
<option value="2" selected='selected'>Februari</option>

为什么不用 Yii 形式

    <?php 
   $years=array(
    0 => '',
    1 => 'Januari',
    2 => 'Februari',
    3 => 'Mac',
    4 => 'April',
    5 => 'Mei',
    6 => 'Jun',
    7 => 'Julai',
    8 => 'Ogos',
    9 => 'September',
    10 => 'Oktober',
    11 => 'November',
    12 => 'Disember'
);
?>
<?php echo CHtml::beginForm();?>

<?php echo CHtml::dropDownList('b', (isset($_POST['b'])?$_POST['b']:$years[0]), $years);?>

<?php echo CHtml::submitButton('Paper Statistik')?> 

<?php echo CHtml::endForm();?>