13. september 2008 - 14:22
Der er
10 kommentarer og 1 løsning
guides gennem PHP funktion
Hejsa.. Jeg har en funktion i ASP, her er den: ''''''''''''//////////////////////////////////// b1_4_vist = 0 Sub udskrivmenu(indput,nr) a = Split(indput,"; ;") antal = Ubound(a) pling = "<div style=""float:left; padding:5px 0px; background-image:url(/admin/grafik/menu2.jpg); background-repeat:no-repeat; background-position:bottom;""> </div>" For i=0 to antal b = Split(a(i),": :") b0 = b(0) b1 = b(1) b2 = b(2) float = "left" if i=nr-1 then url1 = b1 target = "" b0 = "<strong>"&b0&"</strong>" elseif b1 = "1" then if Ubound(sprog_urls) > 1 then sprogurl = "/"&sprog_urls(Session("sprogid")) url1 = sprogurl & url target = "_blank" float = "right" elseif b1 = "3" then float = "right" else url1 = b1 target = "" end if logo1 = "<div style=""float:"&float&"; padding-top:2px;""> <a href="""&url1&""" target="""&target&"""><img src=""/admin/grafik/"&b2&""" border=""0"" /></a></div>" tekst1 = "<div style=""float:"&float&"; padding-top:4px;""> <a href="""&url1&""" target="""&target&""">"&b0&"</a> </div>" if b1 = "1" then Response.write tekst1 & logo1 elseif b1 = "2" then Response.write b0 elseif b1 = "3" then Response.write tekst1 elseif b1 = "4" then if b1_4_vist <> 1 then b1_4_vist = 1 Response.write "<div style=""float:left; padding-top:4px; padding-left:10px""><img id=""gem_gif"" src=""/admin/grafik/loading-bar.gif"" style=""display:none; padding-top:5px""><span id=""gem_tekst"" style=""font-weight:bold; display:" if nn("gem")=1 then Response.write "block" else Response.write "none" end if Response.write """>Der er nu gemt!</span></div>" if nn("gem")=1 then Response.write "<script language=""javascript"">setTimeout(""document.getElementById('gem_tekst').style.display='none'"", 6000)</script>" end if else Response.write logo1 & tekst1 & pling end if Next Response.write "<div style=""clear:both;""></div>" End Sub ''''''''''''//////////////////////////////////// Men lige nu prøver jeg at skrive den om til PHP: ''''''''''''//////////////////////////////////// $b1_4_vist = 0; function udskrivmenu($indput,$nr) { $a = split("; ;",$indput); $antal = count($a); $pling = "<div style=float:left; padding:5px 0px; background-image:url(/admin/grafik/menu2.jpg); background-repeat:no-repeat; background-position:bottom;> </div>"; $i = 0; while ($i < $antal) { $b = split(": :",$a($i)); $b0 = $b[0]; $b1 = $b[1]; $b2 = $b[2]; $float = 'lef'; if ($i=$nr-1) { $url1 = $b1; $target = ''; $b0 = '<strong>".b0."</strong>'; }elseif ($b1 = '1') { if (count($sprog_urls) > 1) { //$sprogurl = "/".sprog_urls(Session("sprogid")) //url1 = sprogurl & url $target = '_blank'; } $float = 'right'; }elseif ($b1 = "3") { $float = 'right'; }else{ $url1 = $b1; $target = ''; } $logo1 = '<div style=float:$float.; padding-top:2px;> <a href=$url1 target=$target><img src=/admin/grafik/$b2 border=0 /></a></div>'; $tekst1 = '<div style=float:$float; padding-top:4px;> <a href=$url1 target=$target>$b0</a> </div>'; if ($b1 = '1') { echo $tekst1 . $logo1; }elseif ($b1 = '2') { echo $b0; }elseif ($b1 = '3') { echo $tekst1; }elseif ($b1 = '4') { if ($b1_4_vist <> '1') { $b1_4_vist = '1'; echo "<div style=float:left; padding-top:4px; padding-left:10px><img id=gem_gif src=/admin/grafik/loading-bar.gif style=display:none; padding-top:5px><span id=gem_tekst style=font-weight:bold; display:"; if ($_REQUEST['gem']='1') { echo 'block'; }else{ echo 'none'; } echo '>Der er nu gemt!</span></div>'; if ($_REQUEST['gem']='1') { echo '<script language=javascript>setTimeout(document.getElementById("gem_tekst").style.display=none, 6000)</script>'; } } }else{ echo $logo1 . $tekst1 . $pling; } } echo '<div style=clear:both;></div>'; } ''''''''''''//////////////////////////////////// Det der sker lige nu, er at jeg får denne fejlbesked: Fatal error: Function name must be a string in, som er her: $b = split(": :",$a($i)); Er der nogen der kan guide mig igennem denne omskrivning?
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
13. september 2008 - 14:24
#1
wups glemte lige at sige, at dette her er det der bliver proppet ind i den: $tilmenu = "Sideindhold: :index.php?sideid=".$sideID.": :sideopsatning.gif"; $tilmenu = $tilmenu . "; ;" . "Sideopsætning: :ret_side.asp?sideid=".$sideID."&sprogid=".$_SESSION["sprogid"].": :indstillinger.gif"; $tilmenu = $tilmenu . "; ;" . "Nyt afsnit: :ret_afsnit.asp?sideid=".$sideID.": :nytafsnit.gif"; $tilmenu = $tilmenu . "; ;" . "Vis side: :1: :vis_side.gif";
13. september 2008 - 14:24
#2
Jeg tror du skal rette til: $a[$i]
13. september 2008 - 14:39
#3
Ja, dumt af mig. Problemet ligger nu bare i at funktionen looper i det uendelige, men echo $antal; = 4 Så den burde vel bare køre loopen igennem 4 SÅ så jeg at jeg havde glemt at tælle $i op. Men desværre synes $i ikke at tælle op. Et eller andet må gå gruelig galt med loopen. Her er den rettede funktion: $b1_4_vist = 0; function udskrivmenu($indput,$nr) { $a = split("; ;",$indput); $antal = count($a); $pling = "<div style=float:left; padding:5px 0px; background-image:url(/admin/grafik/menu2.jpg); background-repeat:no-repeat; background-position:bottom;> </div>"; $i = 0; while ($i < $antal) { $i++; echo $i; $b = split(": :",$a[$i]); $b0 = $b[0]; $b1 = $b[1]; $b2 = $b[2]; $float = 'left'; if ($i=$nr-1) { $url1 = $b1; $target = ''; $b0 = '<strong>'.$b0.'</strong>'; }elseif ($b1 = '1') { if (count($sprog_urls) > 1) { //$sprogurl = "/".sprog_urls(Session("sprogid")) //url1 = sprogurl & url $target = '_blank'; } $float = 'right'; }elseif ($b1 = "3") { $float = 'right'; }else{ $url1 = $b1; $target = ''; } $logo1 = '<div style=float:$float.; padding-top:2px;> <a href=$url1 target=$target><img src=/admin/grafik/$b2 border=0 /></a></div>'; $tekst1 = '<div style=float:$float; padding-top:4px;> <a href=$url1 target=$target>'.$b0.'</a> </div>'; if ($b1 = '1') { echo $tekst1 . $logo1; }elseif ($b1 = '2') { echo $b0; }elseif ($b1 = '3') { echo $tekst1; }elseif ($b1 = '4') { if ($b1_4_vist <> '1') { $b1_4_vist = '1'; echo "<div style=float:left; padding-top:4px; padding-left:10px><img id=gem_gif src=/admin/grafik/loading-bar.gif style=display:none; padding-top:5px><span id=gem_tekst style=font-weight:bold; display:"; if ($_REQUEST['gem']='1') { echo 'block'; }else{ echo 'none'; } echo '>Der er nu gemt!</span></div>'; if ($_REQUEST['gem']='1') { echo '<script language=javascript>setTimeout(document.getElementById("gem_tekst").style.display=none, 6000)</script>'; } } }else{ echo $logo1 . $tekst1 . $pling; } } echo '<div style=clear:both;></div>'; }
13. september 2008 - 14:41
#4
Prøv i stedet for: while ($i < $antal) { at lav: for($i = 0; $i < $antal; $i++){ //din kode som tidligere var inde i while($i < $antal) }
13. september 2008 - 14:45
#5
okay, det der sker nu er at ved dette indput: $tilmenu = "Sideindhold: :index.php?sideid=".$sideID.": :sideopsatning.gif"; $tilmenu = $tilmenu . "; ;" . "Sideopsætning: :ret_side.asp?sideid=".$sideID."&sprogid=".$_SESSION["sprogid"].": :indstillinger.gif"; $tilmenu = $tilmenu . "; ;" . "Nyt afsnit: :ret_afsnit.asp?sideid=".$sideID.": :nytafsnit.gif"; $tilmenu = $tilmenu . "; ;" . "Vis side: :1: :vis_side.gif"; udskrivmenu($tilmenu,1); Så bliver den første linie udskrevet en gang, men den anden linie bliver udskrevet uendeligt ser det ud til.. Altså sideindhold kommer en gang, sideopsætning forstsætter.
13. september 2008 - 14:52
#6
Jeg tror du må i gang med at udskrive dine variabler ned i gennem koden, og så se om du kan gennemskue hvor koden fejler.
13. september 2008 - 14:53
#7
yeps er allerede begyndt. if ($i=$nr-1) { }elseif ($b1 = '1') { } Det er her den fejler. Hvis jeg skriver dette går det fint: if ($u=$nr-1) { }elseif ($b1 = '1') { } SÅ jeg må åben bar ikke skrive den første sætning. Har du en ide om hvorfor?
13. september 2008 - 14:56
#8
Jeg tror jeg fandt fejlen... if ($i=$nr-1) { Skal være: if ($i==$nr-1) {
13. september 2008 - 14:59
#9
Så sandt så sandt. Jeg er blevet for vandt til ASP syntaks, glmete fuldstændign at det skal være dobbelt ==. Mange tak for hjælpen - flinkt af dig Smid du et svar.
13. september 2008 - 15:04
#10
Svar!
13. september 2008 - 15:06
#11
Takker for point.
Vi tilbyder markedets bedste kurser inden for webudvikling