0

データベースから PHP の選択ボックス (ドロップダウン ボックス) にデータを入力しています。

function selBox(){
    conDB();
    $sql1 = "SELECT cname FROM course";
    $selResult = mysql_query($sql1);
    echo"<option value = 'default'>Select Course</option>";
        $rowNum = 0;
        while($selRows = mysql_fetch_array($selResult)){
        echo"<option value = " . $selRows[0] . ">" . $selRows[0] . </option>";
        }
    mysql_close();
}

上記の関数は、次のように html で呼び出されます。

<select name="delCourse"><?php selBox();?></select>

同じページで、ドロップ ボックスで選択されたものの値を取得します。

$Selected = $_POST['delCourse'];
            echo $Selected;

何が起こるかというと、ドロップボックスに入力されるデータベースに多くのコースがあります。ユーザーが選択すると、これが $Selected に入れられ、別の関数に転送されます。

問題: $Selected をエコーすると、ScienceScience または MathematicsMathematics のような二重の答えが得られます。正しい答えを得るために、これで文字列操作を行うことができるかもしれません。ドロップボックスで選択したものから 1 つの回答のみを取得する別の方法はありますか?

4

1 に答える 1

0

わかりましたので、関数をいじって、質問に対する答えを得ました。私の関数は次のようになります。

function selBox($selValue){
    conDB();
    $sql1 = "SELECT cid, cname FROM course";
    $selResult = mysql_query($sql1);
    echo"<option value = 'default'>Select Course</option>";
        while($selRows = mysql_fetch_array($selResult)){
            $id = htmlspecialchars($selRows["cid"]) ;
            $course = htmlspecialchars($selRows["cname"]);
            echo "<option value='$id'>$course</option>";
        }
    $selValue = $_POST['delCourse'];
    mysql_close();
    return;
}

関数は、他のページから次のように呼び出されます。

    <select name="delCourse"><?php selBox($selValue);?></select>

何が選択されたかを確認する switch ステートメントの部分は、次のようになります。

    case "Delete Course":
            $selValue = "";
            $Selected = $selValue;
            echo $Selected;
            break;

上記を実行して、シングル値を取得します。これで、その値を次の関数に再び渡すことができます。

于 2013-03-27T11:10:33.663 に答える