Avatar billede avminarm Juniormester
17. marts 2008 - 18:20 Der er 1 løsning

visskjul blandet med PHP skal vise bestemt værdi 1. gang

Hej Jeg har brygget det har sammen, men er ikke så skarp til javascript.

Jeg vil gerne have funktionen/scriptet til at virke således at hvis variablen: $showFirst er sat til en værdi (andet end "no") så vises den værdi når siden vises første gang - MEN det kan ikke gøres vis <body> tagget - jeg håber min forklaring er god nok - ellers så spørg.

Jeg er ret sikker på at det er en lille javacript rettelse der skal til.

FUNKTIONEN:

function visSkjul($controls = array(), $elements = array(), $type = "radio", $showFirst = "no"){
    if($showFirst != "no"){ // Hvis ikke den er lig med NO skal den være lig med det id der skal vises
        $showHide['js'] .= '<script type="text/javascript" onload="skift('.$showFirst.')">'."\n";
    } else {   
        $showHide['js'] = '<script type="text/javascript">'."\n";
    }
      $showHide['js'] .= 'var old = 1;'."\n"
          .'function skift(nr){'."\n"
          .'document.getElementById(old).style.display=\'none\''."\n"
          .'document.getElementById(nr).style.display=\'block\''."\n"
        .'old = nr;'."\n"
          .'}'."\n"
        .'</script>'."\n";
   
      $cid = 1;
      $showHide['controls'] = ($type == "select" ? '<select onChange="skift(this.value)"><option value="x">vælg</option>' : '');
      foreach($controls as $Ckey => $Cvalue){
          if($type == "radio"){
              $checked = (($showFirst != "no" && $cid == $showFirst)? ' chedked' : '');
              $showHide['controls'] .= '<input type="radio" name="choose" onclick="skift('.$cid.')"'.$checked.'>&nbsp;'.$Cvalue.''."\n";         
          } elseif($type == "select") {
              $selected = (($showFirst != "no" && $cid == $showFirst)? ' selected' : '');
              $showHide['controls'] .= '<option value="'.$cid.'"'.$selected.'>'.$Cvalue.'</option>';
          }
        $cid++;    
      }
      $showHide['controls'] .= ($type == "select" ? '</select>' : '');
      $id = 1;
      $showHide['elements'] = '<table border="0">'."\n";
    foreach($elements as $key => $value){
        //$display = (($showFirst != "no" && $id == $showFirst)? 'block' : 'none'); // Hvis shovFirst er lig med f.eks 2 vises den værdi værdi som default
        $showHide['elements'] .= '<tr id="'.$id.'" style="display: none;"><td>'.$value.'</td></tr>'."\n";
        $id++;
    }
    $showHide['elements'] .= '</table>'."\n";
    return $showHide;
}
Avatar billede avminarm Juniormester
17. marts 2008 - 19:22 #1
Bare glem det - fandt ud af dette kan gøres således (og dette burde jo nok have ligget i javascript kategorien :o)):
function visSkjul($controls = array(), $elements = array(), $type = "radio", $showFirst = "no"){
    $showHide['js'] = '<script type="text/javascript">'."\n"
          .'var old = 1;'."\n"
          .'function skift(nr){'."\n"
          .'document.getElementById(old).style.display=\'none\''."\n"
          .'document.getElementById(nr).style.display=\'block\''."\n"
        .'old = nr;'."\n"
          .'}'."\n";
          if($showFirst != "no"){    // Hvis ikke den er lig med NO skal den være lig med det id der skal vises
              $showHide['js'].= 'function init(){'
              .'    skift('.$showFirst.');'
              .'}'
              .'onload = init';
          }
    $showHide['js'] .= '</script>'."\n";

      $cid = 1;
      $showHide['controls'] = ($type == "select" ? '<select onChange="skift(this.value)"><option value="x">vælg</option>' : '');
      foreach($controls as $Ckey => $Cvalue){
          if($type == "radio"){
              $checked = (($showFirst != "no" && $cid == $showFirst)? ' chedked' : '');
              $showHide['controls'] .= '<input type="radio" name="choose" onclick="skift('.$cid.')"'.$checked.'>&nbsp;'.$Cvalue.''."\n";         
          } elseif($type == "select") {
              $selected = (($showFirst != "no" && $cid == $showFirst)? ' selected' : '');
              $showHide['controls'] .= '<option value="'.$cid.'"'.$selected.'>'.$Cvalue.'</option>';
          }
        $cid++;    
      }
      $showHide['controls'] .= ($type == "select" ? '</select>' : '');
      $id = 1;
      $showHide['elements'] = '<table border="0">'."\n";
    foreach($elements as $key => $value){
        //$display = (($showFirst != "no" && $id == $showFirst)? 'block' : 'none'); // Hvis shovFirst er lig med f.eks 2 vises den værdi værdi som default
        $showHide['elements'] .= '<tr id="'.$id.'" style="display: none;"><td>'.$value.'</td></tr>'."\n";
        $id++;
    }
    $showHide['elements'] .= '</table>'."\n";
    return $showHide;
}
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