0
<form method="post">
  <select name="select_employee" id="select_employee">
    <?php $allemp=$this->AllEmployees; ?>
    <option selected value="">Select an employee..</option>
    <?php foreach($allemp as $row){ echo "<option value=".$row[ 'Id']. ">".$row[ 'Etunimi']. " - ". $row[ 'Sukunimi']. "</option>"; } ?>
  </select>
  <input type="hidden" name="send" value="namesent">
  <input type="submit" value="submit" id="button">
</form>
<br/>
<br/>

このフォームを送信すると、同じページにとどまりますが、以前に選択したオプションを表示したままにしておきたいのですが、どうすればよいですか? 私は試した:

document.getElementById('select_employee').value = "<?php echo $_GET['select_employee'];?>";

しかし、それはうまくいきませんでした..

4

2 に答える 2

1

ここ:

 foreach($allemp as $row){
     echo "<option " . (isset($_POST['select_employee']) && $_POST['select_employee'] == $row['Id'] ? ' selected ' : '') . " value=".$row['Id'].">".$row['Etunimi']." - ".$row['Sukunimi']."</option>";
}
于 2013-03-05T12:50:33.217 に答える
0

これを試して :

 $selected = ($row['Id'] == $_REQUEST['select_employee'])?'selected="selected"':'';
 echo '<option '.$selected.' value="'.$row['Id'].'">'.$row['Etunimi'].' - '. $row['Sukunimi'].'</option>';
  1. 上に一行追加echo options ($selected = ($row['Id'] == $_REQUEST['select_employee'])?'selected="selected"':'';)

  2. '.$selected.'サイドオプションに追加。

あなたのコードは次のようになります:あなたのコードの代わりにコードの下にコピーして貼り付けます

<form method="post">
  <select name="select_employee" id="select_employee">
    <?php $allemp=$this->AllEmployees; ?>
    <option selected value="">Select an employee..</option>
    <?php foreach($allemp as $row){ 
      $selected = ($row['Id'] == $_REQUEST['select_employee'])?'selected="selected"':'';
     echo '<option '.$selected.' value="'.$row['Id'].'">'.$row['Etunimi'].' - '. $row['Sukunimi'].'</option>';
 } ?>
  </select>
  <input type="hidden" name="send" value="namesent">
  <input type="submit" value="submit" id="button">
</form>
<br/>
<br/>
于 2013-03-05T12:51:17.110 に答える