0

以下のこのコードでは、最初にドロップダウンにjavascriptコードを使用しました。更新すると、最初の行のみが更新され、残りは更新されません.次に、htmlコードを使用すると、すべての行が更新されます.plsは誰でもこの問題を修正するのに役立ちます. html から js に変更した理由は、自動年のためです。

 <script type="text/javascript">
function autoYear() {
  var time = new Date();
  var year = time.getYear();

  if (year < 1900) {
    year = year + 1900;
  }

 var date = year - 1; /*change the '25' to the number of years in the past you want to show */
var future = year + 10; /*change the '10' to the number of years in the future you want to show */ 

document.writeln ("<form><select id='year_<?php echo $row->id ?>'  name='year_<?php echo $row->id ?>'  ><option value=\"\"><?php echo $row->year; ?>");

do {
  date++;
  if (date != <?php echo $row->year; ?>) {
      document.write ("<option value=\"" +date+"\">" +date+ "");
  }
}
while (date < future);
  document.write ("</select></form>");
}
</script>
<script type="text/javascript">
  autoYear();
</script>

HTML

<select class="inputmedium" name="year_<?php echo $row->id; ?>" id="year_<?php echo $row->id; ?>" value="<?php echo $row->year; ?>">
            <?php for($s=0;$s<8;$s++)
                {

                if($row->year!=null and $row->year==$year_array[$s]){

                    echo "<option selected value='" .$year_array[$s]. "'>" .$year_array[$s]. "</option>";

                    }else{

                    echo "<option value='" .$year_array[$s]. "'>" .$year_array[$s]. "</option>";


                    }
                 } ?>

                 </select>

<?php
$year_array=array();
$year_array[0]="2013";
$year_array[1]="2014";
$year_array[2]="2015";
$year_array[3]="2016";
$year_array[4]="2017";
$year_array[5]="2018";
$year_array[6]="2019";
$year_array[7]="2020";


?>
4

1 に答える 1

1

まず、コードをこの行に変更して確認します

document.writeln ("<form><select id='year_<?php echo $row->id ?>'  name='year_<?php echo $row->id ?>'  ><option value=\"\"><?php echo $row->year; ?>");

document.writeln ("<form><select id='year_<?php echo $row->id ?>'  name='year_<?php echo $row->id ?>'  ><option value=\"\"><?php echo $row->year; ?></option>");

document.write ("<option value=\"" +date+"\">" +date+ "");

document.write ("<option value=\"" +date+"\">" +date+ "</option>");
于 2013-10-31T06:02:57.757 に答える