Yii:如何从'形式发布数据值'到同一页面

时间:2015-07-02 19:07:53

标签: php forms yii datepicker yii-components

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

这是表格:

<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);
?>

2 个答案:

答案 0 :(得分:1)

如果您使用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">

您需要为所选值

提供所选选项
<option value="1">Januari</option>
<option value="2" selected='selected'>Februari</option>

答案 1 :(得分:1)

为什么不以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();?>