Avatar billede jedimaster Nybegynder
07. april 2006 - 22:02 Der er 2 kommentarer og
1 løsning

Tæller

Hvad gør jeg forkert?
Meningen er at man skal vælge et navn på en liste, hvorefter det ændre sig i tekst-boksen.
Hele problemet ligger i at jeg ikke kan fo JavaScriptet til at tælle på samme måde som phpScriptet. Phpscriptet virker, det er kun JS jeg ikke kan få til at funge...

Først mit javaScript som burde tælle:
function updateEmne() {
    for (var H=2 ; H <= 10 ; H++) {
      var ThisSelect = document.indsaet_navn.select_emne_[H].selectedIndex;
  document.indsaet_navn.emne_[H].value =
    document.indsaet_navn.select_emne_[H].options[ThisSelect].text;
  document.indsaet_navn.emne_id_[H].value =
    document.indsaet_navn.select_emne_[H].options[ThisSelect].value;
        }
                }


Dernæst min form i php som virker upåklageligt:
<?php

  for ( $k = 2; $k <= 10; $k++)
  {
?>
                                  <div id="emne<?= $k ?>" style="display: none"><br>
                                      <input name="emne_id_<?= $k ?>" id="k_id<?= $k ?>" type="hidden" value=""><input type="text" size="15"  name="emne_<?= $k ?>" id="k<?= $k ?>" onKeyUp="emn(<?= $k ?>)" onFocus="showU('grEmne'); emn(<?= $k ?>);  hideU('grIndex')" onBlur="hideU('grEmne')" >
                                      <a onClick="show('myEmne<?= $k ?>')">>Find emneord</a>
                                      <div id="myEmne<?= $k ?>" style="position:absolute; visibility:hidden; azimuth:behind; background-color:#CCCCCC;" >
                                        <table width="100" border="1" cellpadding="0" cellspacing="0" bordercolor="#333333">
                                          <tr>
                                            <td bordercolor="#CCCCCC"><select size="5" name="select_emne_<?= $k ?>" onChange="updateEmne()">
                                             
                                              <?php
do { 
?>
                                              <option value="<?php echo $row_emneord['id']?>"><?php echo $row_emneord['emne']?></option>
                                              <?php
} while ($row_emneord = mysql_fetch_assoc($emneord));
  $rows = mysql_num_rows($emneord);
  if($rows > 0) {
      mysql_data_seek($emneord, 0);
      $row_emneord = mysql_fetch_assoc($emneord);
  }
?>
                                            </select></td>
                                          </tr>
                                          <tr>
                                            <td bordercolor="#CCCCCC"><input type="button" onClick="hide('myEmne<?= $k ?>'); this.form.emne_<?= $k ?>.focus()" value="Ok"></td>
                                          </tr>
                                        </table>
                                      </div>
                                      <br>
                                  </div>
                                  <?php
  }
?></td>
Avatar billede roenving Novice
08. april 2006 - 15:26 #1
F.eks.

function updateEmne() {
  var f = document.indsaet_navn;
  for (var H=2 ; H <= 10 ; H++) {
    var sel = f.elements["select_emne_"+H];
    var ThisOption = sel.options[sel.selectedIndex];
    f.elements["emne_"+H].value = ThisOption.text;
    f.elements["emne_id_"+H].value = ThisOption.value;
  }
}
Avatar billede jedimaster Nybegynder
13. april 2006 - 08:57 #2
Jeg gjorde sådan her:

i formen satte jeg bare <?= $k ?> ind i funktionen() og så...

JavaS:
function updateEmne(count) {
Num = count;
var Current =
    document.indsaet_bog.elements['select_emne' + Num].selectedIndex;
  document.indsaet_bog.elements['emne' + Num].value =
    document.indsaet_bog.elements['select_emne' + Num].options[Current].text;
  document.indsaet_bog.elements['emne_id' + Num].value =
    document.indsaet_bog.elements['select_emne' + Num].options[Current].value;

}
Avatar billede roenving Novice
13. april 2006 - 19:21 #3
-- der er nu god grund til at jeg viste flere af tingene, f.eks. er det jo performance-mæssigt tåbeligt at man en masse gange skal genfinde form-elementet, ligesom det på samme måde er uklogt at skulle referere flere gange til en bestemt option !-)

function updateEmne(count) {
  var f = document.indsaet_bog, sel = f.elements['select_emne' + count];
  var Current = sel.options[sel.selectedIndex];
  f.elements['emne' + count].value = Current.text;
  f.elements['emne_id' + count].value = Current.value;
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester