webForumDet fria alternativet

Funktion i funktion

1 svar · 200 visningar · startad av Sparven

SparvenMedlem sedan apr. 200378 inlägg
#1

Håller på att göra en sida där det mesta styrs/löses av funktioner.

Jag använder följande kommando för att anropa två funktioner som tillsammans ska bilda en snygg tabell inuti en box. Problemet är bara att när detta skrivs ut i webbläsaren kommer texten först och sedan, rade under, boxen. Kan man skriva om detta på ngt snyggt sätt eller måste jag dela upp box-funktionen i en start och en slut del?

Tack på förhand!

boxes(lista('lankar',3));
// Boxes in admin
function boxes($input){
	echo "<table width='604' border='0' cellspacing='1' cellpadding='1'><tr><td bgcolor='#1E2024'>";
	echo "<table width='604' border='0' cellspacing='1' cellpadding='1'><tr><td bgcolor='#EAEAEA'>";
	echo "<table width='604' border='0' cellspacing='0' cellpadding='10'><tr><td bgcolor='#FFFFFF'>";
	echo $input;
	echo "</td></tr></table>";
	echo "</td></tr></table>";
	echo "</td></tr></table>";
}
// Lists whatever you like
function lista($table,$antal){
	global $conn;
	if($table == 'lankar'){
		$first = 'group';
		$second = 'name';
		$third = 'link';
	}
	if($table == 'bilder'){
	}
	if($table == 'nyheter'){
	}
	$q = "select * from $table";
	$result = mysql_query($q,$conn);
	while($r = mysql_fetch_array($result)){
		echo "<table><tr>";
		echo "<td>".$r[$first]."</td>";
		echo "<td>".$r[$second]."</td>";
		echo "<td>".$r[$third]."</td>";
		echo "</tr></table>";
	}
}
MatteMedlem sedan aug. 20002 975 inlägg
#2

Om du istället returnerar strängen från funktionerna, istället för att skriva ut, kan du arbeta med strängarna som du vill:

// Boxes in admin
function boxes($input){
    return "
      <table width='604' border='0' cellspacing='1' cellpadding='1'><tr><td bgcolor='#1E2024'>
      <table width='604' border='0' cellspacing='1' cellpadding='1'><tr><td bgcolor='#EAEAEA'>
      <table width='604' border='0' cellspacing='0' cellpadding='10'><tr><td bgcolor='#FFFFFF'>
      $input
      </td></tr></table>
      </td></tr></table>
      </td></tr></table>
    ";
}
// Lists whatever you like
function lista($table,$antal){
    global $conn;
    if($table == 'lankar'){
        $first = 'group';
        $second = 'name';
        $third = 'link';
    }
    if($table == 'bilder'){
    }
    if($table == 'nyheter'){
    }
    
    $output = '';
    $q = "select * from $table";
    $result = mysql_query($q,$conn);
    while($r = mysql_fetch_array($result)){
        $output .= "
          <table><tr>
          <td>".$r[$first]."</td>
          <td>".$r[$second]."</td>
          <td>".$r[$third]."</td>
          </tr></table>
        ";
    }
    
    return $output;
}

echo boxes(lista('lankar',3));

Det är överhuvudtaget en god vana när det gäller funktioner, att använda return istället för echo.

O.T.
Vore det inte lite lämpligare att använda <div> istället för <table> i funktionen boxes().

133 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)