code inkorten (met letters deze keer)

Status
Niet open voor verdere reacties.

bn2vs

Terugkerende gebruiker
Lid geworden
18 aug 2007
Berichten
1.705
In mijn script gebruik ik momenteel 26 lijntjes zoals deze. hoe kan ik dat korter maken?

PHP:
if (precat["k"] != "") {categoryk = "function k() {hide(); imgstk.src=\'../k/" + active_btn2 + "\'; Tip(\'"+ precat["k"] +"\');};"};

de letter k moet dus alle letters van a tot z zijn
 
Vast op te lossen via een FOR- of WHILE-lus i.s.m. een array (In die array heb je dan alle letters staan.)
 
Ja, dat vermoede ik al. Maar de reden dat ik het hier post is omdat ik geen idee heb hoe ik het met letters doe... :confused:
 
mss zo? (in php zou ik het zo oplossen, weet niet of het zo ook in javascript gaat...)

HTML:
letters = array(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z);

for(tel = 0, tel < 26, tel++){

if (precat["letters[tel]"] != "") {
categoryk = "function letters[tel]() {hide(); imgstk.src=\'../letters[tel]/" + active_btn2 + "\'; Tip(\'"+ precat["letters[tel]"] +"\');};"}; 

}

sorry als dit helemaal fout is :confused:
 
Waarschijnlijk zal je voorbeeld niet werken Janusss, hoewel het aardig in de richting is.

Ik denk dat het zoiets moet worden
PHP:
$letter_array = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');

for($i = 0;$i < length($letter_array);$i++){
  echo'
  if (precat["'. $letter_array[$i] .'"] != "") {
    category'. $letter_array[$i] .' = "function '$letter_array[$i] .'() {
      hide();
      imgstk.src=\'../'. $letter_array[$i] .'/" + active_btn2 + "\'; Tip(\'"+ precat["'. $letter_array[$i] .'"] +"\');
      };
    "};
  };';
}
Waarschijnlijk kun je dit dan op het gedeelte van het javascript zetten.
 
Laatst bewerkt:
Ik wist niet dat in javascript ook '$' voor een string mocht staan...

Als dit zo is zou dit javascript voor mij een pak logischer maken:)

**edit**

heb juist gezien dat dit php is die javascript echoot...
 
moet dit dan tussen php tags?
 
Ja, en je zet het op het gedeelte tussen <script> </script>
 
zo?

<script>
...
<?php
...
?>
...
</script>
 
PHP:
<html>
 <head>
  <title>Pagina</title>
  <script>
  <?php
$letter_array = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); 

for($i = 0;$i < length($letter_array);$i++){ 
  echo' 
  if (precat["'. $letter_array[$i] .'"] != "") { 
    category'. $letter_array[$i] .' = "function '$letter_array[$i] .'() { 
      hide(); 
      imgstk.src=\'../'. $letter_array[$i] .'/" + active_btn2 + "\'; Tip(\'"+ precat["'. $letter_array[$i] .'"] +"\'); 
      }; 
    "}; 
  };';
  echo "/n"; //Nieuwe regel in bron 
}
?>
  </script>
 </head>
 <body>
...
</body>
</html>
Zo inderdaad, als het niet werkt moet je even in de bron van die pagina kijken en controleren of hij wel de juiste code heeft gemaakt.
 
Euhm, dat werkt niet. Deze code word al naar een andere pagina geschreven. Kan dit niet met een array zonder dat die opnieuw geschreven word?

PHP:
if (precat["k"] != "") {categoryk = "function k() {hide(); imgstk.src=\'../k/" + active_btn2 + "\'; Tip(\'"+ precat["k"] +"\');};"};
 
Het klopt dat hij niet werkte, ik heb hem wat aangepast. Als het goed is doet hij het nu wel
PHP:
<html> 
<head> 
 <title>Pagina</title> 
 <script language="javascript"> 
 <?php 
$letter_array = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');

for($i = 0;$i < count($letter_array);$i++){ 
  echo' 
if (precat["'. $letter_array[$i] .'"] != "") { 
  category'. $letter_array[$i] .' = "function '. $letter_array[$i] .'() { 
    hide(); 
    imgstk.src=\'../'. $letter_array[$i] .'/" + active_btn2 + "\'; Tip(\'"+ precat["'. $letter_array[$i] .'"] +"\');
  }; 
"}; '; 
  echo "\n"; //Nieuwe regel in bron 
} 
?> 
  </script> 
</head> 
<body> 
... 
</body> 
</html>
Resultaat bij mij:
Code:
if (precat["A"] != "") { 
  categoryA = "function A() { 
    hide(); 
    imgstk.src='../A/" + active_btn2 + "'; Tip('"+ precat["A"] +"');
  }; 
"}; 
 
if (precat["B"] != "") { 
  categoryB = "function B() { 
    hide(); 
    imgstk.src='../B/" + active_btn2 + "'; Tip('"+ precat["B"] +"');
  }; 
"}; 

//etc
 
hmmm, het werkt nog steeds niet.
als ik mijn code daardoor vervang word mijn js niet uitgevoerd.

kan het niet gewoon in js zonder die php?
 
Kan ongetwijfeld, ik heb daar alleen de kennis niet voor.

Je zult dan op iemand moeten wachten die wel die kennis heeft en het antwoord op je vraag heeft.
 
pfff, dan schrijf ik de 26 lijntjes wel, anders moet ik telaag wachte :(
toch benadkt voor de hulp :D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan