24. august 2006 - 23:00
Der er
7 kommentarer og 1 løsning
PHP: resultat af funktion vises ikke på korrekt placering.
Hej eksperter! :D Jeg har stirret mig blind og håber der er en der kan fortælle mig hvad jeg lige kan gøre. Jeg har denne udskrift: echo "<tr><td class=\"ordre_antal\">".$antal[$i]." X</td><td class=\"ordre_desc\">".stripslashes($info[$i]) . stegt(steak) . stegt(engelsk)."</td><td class=\"ordre_pris\">á ".$pris[$i].",-</td><td class=\"ordre_p_ialt\">Pris: ".$mellempris.",-</td></tr>"; Men når jeg bruger funktionen stegt() bliver resultatet af funktionen udskrevet før min tabel bliver lavet, dvs udskriften ser således ud: Rød 1Medium 2Gennemstegt 3Rød 3Medium 2Gennemstegt 1<tr><td class="ordre_antal">1 X</td><td class="ordre_desc" border="1">Engelsk bøf (300 gr.) med brun sovs, bløde løg og agurkesalat.</td><td class="ordre_pris">á 94,-</td><td Og det er: Rød 1Medium 2Gennemstegt 3Rød 3Medium 2Gennemstegt 1<tr><td der skal ligges mærke til. Da det helst skulle ned og stå sammen med min $info[$i]... Hvordan får jeg lige fikset det?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
24. august 2006 - 23:06
#1
Du skal ikke bruge print/echo i din funktion stegt, men sige return til den tekststreng, den laver.
24. august 2006 - 23:10
#2
Og hvis du ikke gider det, så skal du ændre echo "noget" . stegt(noget) . "mere"; til echo "noget"; stegt(noget); echo "mere";
24. august 2006 - 23:14
#3
function stegt($boef) { if(isset($_POST[$boef])) { $engelsk = $_POST[$boef]; $i1 = 0; while($i1<=count($engelsk)-1){ if ($engelsk[$i1] != "0") { if($i1 == 0) { $tilstand = "Rød"; } else if ($i1 == 1) { $tilstand = "Medium"; } else if ($i1 == 2) { $tilstand = "Gennemstegt"; }; echo $tilstand ." ". $engelsk[$i1]; }; $i1++; }; }; }; Her er min funktion, hvordan skal den omskrives så jeg kan lave return? - der er jo et whileloop i den, hvilket ligesom gør at jeg ikke lige kan overskue hvordan den skal returne noget, for der er jo ikke noget at returnere når whileloopet er kørt?
24. august 2006 - 23:16
#4
Og retter jeg det til: echo $tilstand; echo " "; echo $engelsk[$i1]; så er resultatet det samme som før, med at den skriver det uden for min <tr>
24. august 2006 - 23:20
#5
Vælger du løsning nummer 2, skal du beholde din funktion som den er, og ændre hvor du bruger den, sådan ca. som beskrevet.
25. august 2006 - 00:45
#6
Jeg kom frem til denne version af funktionen, og fik flyttet mit while loop uden for funktionen: function stegt2($boef, $z) { if(isset($boef)) { $engelsk = $_POST[$boef]; if($z == 0) { $tilstand = "Rød"; } else if ($z == 1) { $tilstand = "Medium"; } else { $tilstand = "Gennemstegt"; }; if($engelsk[$z] !== "0") { return $tilstand . ": " .$engelsk[$z]." "; }; } else { exit; }; }; Smider du et svar erikjabobsen ? :)
25. august 2006 - 09:41
#7
Jeg samler slet ikke på point, tak.
25. august 2006 - 11:57
#8
Det er i orden. :) - men du skal have mange gange tak for hjælpen.
Vi tilbyder markedets bedste kurser inden for webudvikling