0

私のコードは

    echo("<td>$row[Status]</td>");
    echo("<td>
    <select name=\"choose\" id=\"Choose\" onChange=\"\">
    <option value=\"Unverified\">Unverified</option>
    <option value=\"Approved\">Approve</option>
    <option value=\"Decline\">Decline</option>
    <option value=\"Pending\">Pending</option>                   
    </select>
    </td>");

($row[Status] == Approved) の場合、コードは次のように変更する必要があります。

.
.
<option value=\"Approved\" Selected>Approve</option>
.
.

最も簡単な方法は、すべてに対して単純な if 条件を作成することですが、よりスマートな方法が必要です。何か案は?

私はそれをphp自体に保持したいと思います。また、a => b のようなもう少し複雑な記号を使用する場合は、その記号が使用される理由とその機能について説明してください。

4

3 に答える 3

1

可能な値の配列を作成してから、ループ内にオプションを作成します。そうすれば、現在の値と目的の (ここでは、承認された) 値が一致する if 条件を 1 つだけ記述する必要があります。

于 2013-03-13T23:56:46.747 に答える
0
    echo("<td>$row[Status]</td>");
    $search= "$row[Status]\"";
    $replace= "$row[status]\" Selected";
    $subject="<td>
    <select name=\"choose\" id=\"Reason\" onChange=\"\">
         <option value=\"Unverified\">Unverified</option>
         <option value=\"Approved\">Approve</option>
         <option value=\"Decline\">Decline</option>
         <option value=\"Pending\">Pending</option>                     
         </select>
         </td>";
$subject=str_replace($search, $replace, $subject);
echo $subject;

上記を使用して、希望する結果が得られました... str_replaceが編集された値を返し、$ subjectを置き換えないことを知らずに、1時間無駄になりました。みんな、ありがとう。

于 2013-03-14T01:23:30.053 に答える
0

これを試して!配列全体をループし、選択したオプションに到達すると選択します。これはあなたが探していたものですか?

(テストされていません)

echo ("<select name=\"choose\" id=\"Choose\" onChange=\"\">");

$sel["Unverified"] = "Unverified";
$sel["Approved"] = "Approve";
$sel["Decline"] = "Decline";
$sel["Pending"] = "Pending";

$selected = "Approved";

foreach($sel as $key => $value) {
    if ($selected == $key) {
        echo ("<option value=\"$key\">$value</option>");
    }
    else {
        echo ("<option value=\"$key\" selected>$value</option>");
    }
}

echo ("</select>");

?>
于 2013-03-14T00:22:44.083 に答える