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

selectsの値POSTを1つの配列にグループ化する名前を使用できます。

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 に答える
1

name属性を配列に変更するだけです。

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

$_POST変数は配列になります

于 2012-11-22T16:56:11.773 に答える