1

http://fog.ccsf.cc.ca.us/~tboegel/semesterGPA1.php

私のフォームは、コースのGPAを計算することになっています(上記のリンク)。合計点、GPA、品質合計を計算する必要があります。私は自分でそれを理解できると思いますが、$_REQUEST['course1']、course2、course3、units1、units2などの方法を見つける必要があります...(以下を参照)

これまでのところ、私は

<?php
$course = $_REQUEST['course0'];
$units = $_REQUEST['units0'];
$letterGrade = $_REQUEST['letterGrade0'];
$letterGrade = strtoupper($letterGrade);
if($letterGrade == 'A') {
    $numberGrade = 4;
} elseif ($letterGrade == 'B') {
    $numberGrade = 3;                                                                           
} elseif ($letterGrade == 'C')  {
    $numberGrade = 2;                                                                           
} elseif ($letterGrade == 'D')  {
    $numberGrade = 1;                                                                           
} else {
    $numberGrade = 0;                                                                           
}

$qualityPoints = $units * $numberGrade;

function calculateQualityPoints($course, $units, $letterGrade, $qualityPoints) {
echo "<tr><td>$course</td><td>$units</td><td>$letterGrade</td><td>$qualityPoints</td></tr>";

}

echo "<table width='50%' align='left'><tr><th>Course</th><th>Units</th><th>Letter Grade</th><th>Quality Points</th></tr>";
calculateQualityPoints($course, $units, $letterGrade, $qualityPoints);                          
echo "<tr><td><strong>Total</strong></td><td><strong>total</strong></td><td></td><td><strong>quality total</strong></td></tr><tr><td><strong>GPA</strong></td><td><strong>GPA #</strong></td></tr></table>";                                                                                    

?>

最初のテキスト ボックスのみが機能します。course1、course2、course3、units1、units2、letterGrade1 などを取得するにはどうすればよいですか?

このコードは、コース、学年、単位を入力するための HTML フォームからのものです。

<?php
  for ($i=0; $i<5; $i+=1) {
    print "<tr>\n";
    print "\t<td><input type='text' name='course$i'></td>\n";
    print "\t<td><input type='text' name='units$i' size=5></td>\n";
    print "\t<td><input type='text' name='letterGrade$i' size=5></td>\n";
    print "</tr>\n";
  }
  ?>
4

4 に答える 4

1

フォームで post メソッドを使用しているため、semesterGPA2.php では、$POST['name'] を使用してこれらの入力変数にアクセスする必要があります。名前はコース 0、1、2 などです。別の for ループを使用して、これを表示します。

コードは次のようになります。タイプミスがないことを保証しないでください!.

<?php
//maybe put the th tag here, course, units lettergrade, etc.
$qualityPoints = 0;
$units = 0;
for($i=0; $i<5; $i++) {

    //these are just the names in input name = "", can rename yo anything you want
    $courseName = 'course'.$i; 
    $unitsName = 'units'.$i;
    $letterGradeName = 'lettergrade'.$i;

    //we are using post to retrieve these form input variables
    $letterGrade = $POST[$letterGradename];
    $units = $POST[$unitsName];
    $course = $POST[$courseName];
    //calculate the quality points for each one
    $qualityPoints = calculateQualityPoints($units, $letterGrade);
    //maybe hereyou can just output(echo) each row with the above information
    //echo above info

    //you can aggregate them here for output of the final grade, like a report card
    $qualityPoints += $qualityPoints;
    $units += $units;
}

//here you can use the total quality points and the total units to calculate gpa
$GPA = ($qualityPoints/$units)/25;
echo "GPA:". $GPA;
//or even make a function to calculate GPA
//Why not even create a report card class that encapsulates all of this, but may be over kill!
function calculateQualityPoints($units, $letterGrade) {
    if($letterGrade == 'A') {
        //you can conver the letter grade to number grade, or you can just do it directly 
        $qualityPoints = 100 * $units;
    } elseif ($letterGrade == 'B') {
        $qualityPoints = 75 * $units;                                                                         
    } elseif ($letterGrade == 'C')  {
        $qualityPoints = 50 * $units;                                                                        
    } elseif ($letterGrade == 'D')  {
        $qualityPoints = 25 * $units;                                                                           
    } else {
        $qualityPoints = 0;                                                                          
    }
    return $qualityPoints;
}

?>
于 2012-10-13T20:59:47.967 に答える
1

値 == '' または NULL の場合は、チェックを行うだけです

于 2012-10-13T21:28:01.190 に答える
0

これに置き換えcalculateQualityPoints($course, $units, $letterGrade, $qualityPoints); てください...動作するはずです

for ($i=0; $i<5; $i+=1) {
   echo "<tr><td>".$_REQUEST['course'.$i]."</td><td>".$_REQUEST['units'.$i]."</td>";      
   echo "<td>$letterGrade</td><td>$qualityPoints</td></tr>";
}
于 2012-10-13T20:13:29.577 に答える