1

I am having a problem with updating some values in my database. When I want to change a value using a drop down box, it automatically puts in the first value in the dropdown menu. What I want is to get the value that is already set in the database.

Here is my code:

<select name="vrijwilligerID">
<?php           
    $vrijwilligerID = $_POST["vrijwilligerID"];
    $query = "SELECT voornaam, achternaam, vrijwilligerID FROM vrijwilliger;";
    $result = mysql_query($query);
    while($row=mysql_fetch_array($result)){
        echo "<option value=".$row['vrijwilligerID'].">".$row["voornaam"]." ".$row["achternaam"]."</option>";
    }
?>              
</select>

Does anyone know how to get this right? Thank you in advance.

4

2 に答える 2

2

選択したアイテムに基づいて、選択した属性をオプションに追加する必要があります。

これを試して

<select name="vrijwilligerID">
                <?php           
                    $vrijwilligerID = $_POST["vrijwilligerID"];

                    $query ="   SELECT voornaam, achternaam, vrijwilligerID
                                FROM vrijwilliger;";

                    $result = mysql_query($query);

                    while($row=mysql_fetch_array($result)){
                      if($row["vrijwilligerID"]==$vrijwilligerID)
                           echo "<option value=".$row['vrijwilligerID']." selected>".$row["voornaam"]." ".$row["achternaam"]."</option>";

                     else
                          echo "<option   value=".$row['vrijwilligerID'].">".$row["voornaam"]." ".$row["achternaam"]."</option>";
                    }
                    ?>              
        </select>
于 2012-06-27T16:18:19.523 に答える
0

PHPを使用してそれを解決するのは簡単ですが、mysqls IF() 関数を使用すると、選択したオプションを直接持つことができます。mysqls concat() を使用すると、目的の結果も得られます。

(もちろん、無害化されていないスクリプトでpostvarを使用していません;))

$iVrijwilligerid = filter_input(INPUT_POST, 'vrijwilligerID', FILTER_VALIDATE_INT, array("options"=> array("min_range"=>0, "max_range"=>999))) ;

if($iVrijwilligerid)
{
  $sQry = <<<QRY
      SELECT
        CONCAT('<option value="', vrijwilligerID, '"',IF((SELECT vrijwilligerID FROM vrijwilliger WHERE vrijwilligerID=$iVrijwilligerid), ' selected="selected"', '' ),'>',voornaam, ,achternaam,'</option>') AS optItem
      FROM
        vrijwilliger
      WHERE
        your clause here
QRY;
  $oResult = mysql_query( $sQry );
  while($aRow=mysql_fetch_assoc( $oResult ))
  {
    echo $aRow['optItem'];
  }
}
else
{
  // nada
}
于 2012-06-27T16:36:44.877 に答える