0

所以基本上,我有一个模块数组,我想要一个下拉菜单,然后用户可以选择他们获得的成绩。这很好用,但是,我希望将结果存储在数组中,无论他们选择了多少值。例如:

如果有人在 Mod1 中选择了“40”,在 Mod2 中选择了“20”,那么数组将如下所示:

mod1=>40

mod2=>20

...

这是到目前为止的代码,它可能很愚蠢,我无法理解它。

<?php

$modules = array('Mod1', 'Mod2', 'Mod3');   

if(!isset($_POST['submitted']))
{
    echo '<form method="post">';

    echo 'Please enter the grades you got for each Module: <br />';
    foreach($modules as $module)
    {
        echo $module . ': <input type="text" name="grades[]" value=""> <br />';
    }
    echo '<br /><input type="submit" name="submit" value="Go!">';
    echo '<input type="hidden" name="submitted" value="TRUE">';

}else{

    $input = $_POST['score[]'];
    foreach($modules as $i => $module){
        $input[$module] = $input[$i];
        var_dump($input[$module] = $i);
        //unset($input[$i]);
    }
    //var_dump($input);

}

?>
4

3 回答 3

2
<select name="score[<?php echo $module; ?>]">

应该让你开始 :)
数组看起来就像你在介绍中缩小范围一样。

于 2012-11-22T16:56:03.480 回答
1

只需将您的 name 属性更改为数组:

echo '<select name="score[]">';

$_POST 变量将在一个数组中

于 2012-11-22T16:56:11.773 回答
1

select您可以使用将s的值分组POST到一个数组中的名称:

echo '<select name="score[]">';

然后你可以使用:

$input = $_POST['score[]'];
foreach($modules as $i=>$module){
    $input[$module] = $input[$i];
    unset($input[$i]);
}
var_dump($input);
于 2012-11-22T17:00:09.347 回答