Avatar billede webudvikleren Nybegynder
26. juni 2007 - 17:41 Der er 3 kommentarer og
1 løsning

Annonceringssystem går galt hvis ordet går igen

Hejsa. Jeg har fået en opgave, hvor jeg skal lave, således at hvis et ord, f.eks "mælk" går igen, i en tekst, så skal den erstatte ordet med et link til en annoncør.

F.eks:

<div id="tekst">
  Eksperten er et dejligt sted at være - altid god hjælp!
</div>

Hvis ordet "Eksperten" og "sted" er ord som der er købt annonce på, skal det erstattes til:

<div id="tekst">
  <a href="eksperten.dk">Eksperten</a> er et dejligt <a href="arla.dk">sted</a> at være - altid god hjælp
</div>

Men problemet er, at hvis ordet "Eksperten", f.eks. går igen 2 gange i divens indhold, så går scriptet i stykker, og udskriver noget forkert. Det er lidt svært at forklare hvad den udskriver. Men prøv kig nærmere på min kode herunder - håber i kan hjælpe.

http://pastebin.com/936844

På forhånd tak
Avatar billede roenving Novice
27. juni 2007 - 00:33 #1
Undgå replacen og brug i stedet det array, du har i forvejen:

window.onload = function(){
    var txt = document.getElementById('tekst').innerHTML != "" ? (document.getElementById('tekst').innerHTML) : "";

    var spl = txt.split(" ");

    var annoncer = new Array();
    <?php
    $i=0;
    $Query = mysql_query("SELECT titel, tekst, link, ord FROM annoncer ORDER BY id DESC");
    while ( $row = mysql_fetch_object($Query) )
    {
    ?>
    annoncer[<?=$i;?>]      = "<?=$row->ord;?>*<?=$row->titel;?>*<?=$row->tekst;?>*<?=$row->link;?>";
    <?php $i++;} ?> 

    for ( i=0; i<spl.length;i++){
      for ( a=0; a<annoncer.length; a++){
        ann = annoncer[a].split("*");

        if ( spl[i] == ann[0] ){
                  spl[i] = "<span class=\"annonce\" onclick=\"__jaykayGotoAnnonce('"+escape(annoncer[a])+"');\" onmouseover=\"__jaykayAnnoncering('"+escape(annoncer[a])+"',event);\" onmouseout=\"__jaykayClose();\">"+spl[i]+"</span>");
        } else {
                  /** JayKay.dk **/
        }
      }
    }

    document.getElementById('tekst').innerHTML = spl.join(" ");
};

-- det skal bare joines til sidst igen !-)
Avatar billede webudvikleren Nybegynder
27. juni 2007 - 15:06 #2
Mange tak, smid lige et svar
Avatar billede roenving Novice
27. juni 2007 - 16:37 #3
Velbekomme '-)
Avatar billede roenving Novice
27. juni 2007 - 17:11 #4
-- og tak for point ;~}
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