Avatar billede engin10 Nybegynder
21. februar 2005 - 10:50 Der er 5 kommentarer og
1 løsning

udtræk til table med klasse.

Hej

Meningen med den nestående tabel er at udskrive indholdet ind i en tabel der ligger i Varertabel.tpl.
Problemet er at den udskriver det engang. Jeg har forsøgt mig med en for løkke men det hjælp ikke da man ikke kan bruge en for løkke på en object.

<?PHP

Class Varertabel
{
private $template;
private $templateCopy;

function Varertabel($path)
{
$this->template = file_get_contents($path.'Varertabel.tpl');
}

function SetTabel($content)
{
$this->templateCopy = $this->template;

$this->templateCopy = str_replace('{VARER_NR}',
$content['id'], $this->templateCopy);

$this->templateCopy = str_replace('{VARER}',
$content['varer'], $this->templateCopy);

$this->templateCopy = str_replace('{BESKRIVELSE}',
$content['beskrivelse'], $this->templateCopy);

$this->templateCopy = str_replace('{STATUS}',
$content['status'], $this->templateCopy);

}

function Create()
{
return $this->templateCopy;
}
}
?>
Avatar billede Slettet bruger
21. februar 2005 - 11:31 #1
du kan sagtens bruge løkker osv i klasser.. jeg er ikke med på hvad dit problem er..
Avatar billede engin10 Nybegynder
21. februar 2005 - 12:40 #2
Hej :)
For eksempel.

$VarertabelObj->SetTabel($result[0]);
$MainTemplateObj->Set($VarertabelObj->create(),'{BODY_CONTENT}');

Jeg kan kun få dataen ud en gang. Hvis jeg ikke skriver [0] ved result for jeg ikke noget ud på siden..
Avatar billede Slettet bruger
21. februar 2005 - 20:59 #3
Jeg ved ikke om det her virker da jeg ikke har arbejdet så meget med klasser


<?PHP

class Varertabel
    {
    private $template;
    private $templateCopy;
   
    function Varertabel($path)
        {
        $this->template = file_get_contents($path.'Varertabel.tpl');
        }
   
    function SetTabel($content)
        {
        $this->templateCopy = $this->template;
       
        $this->templateCopy = str_replace('{VARER_NR}', $content['id'], $this->templateCopy);
       
        $this->templateCopy = str_replace('{VARER}', $content['varer'], $this->templateCopy);
       
        $this->templateCopy = str_replace('{BESKRIVELSE}', $content['beskrivelse'], $this->templateCopy);
       
        $this->templateCopy = str_replace('{STATUS}', $content['status'], $this->templateCopy);
       
        }
   
    function Create()
        {
        return $this->templateCopy;
        }
    }
   
$tabel = new Varertabel;
$q = mysql_query("SELECT * FROM osv osv osv") or die(mysql_error());
while($row = mysql_fetch_array($q))
    {
    $tabellen .= $tabel->SetTabel($row);
    }
echo $tabellen;
?>
Avatar billede engin10 Nybegynder
22. februar 2005 - 09:06 #4
Hej jeg har fået problemet løst på et andet måde. Men tusind tak for dit svar. Det kan være at jeg får brug for den på et andet tidspunkt og tester det. Hvis du giver mig et svar vil jeg meget gerne give dig de 60 box.
Avatar billede Slettet bruger
22. februar 2005 - 14:26 #5
jo tak. Vil du fortælle hvordan du har løst det?
Avatar billede engin10 Nybegynder
23. februar 2005 - 08:03 #6
Jeg bruger et andet eksempel som laver tabellen direkte i classen.

function getResultAsTable($actions){
if($this->numrows() > 0 ){
$resultHTML = "<table class='td7'>\n<tr>\n";
$fieldCount = $this->numberFields();
for($i=1; $i < $fieldCount; $i++){
$rowName = $this->fieldName($i);
$resultHTML .="<th>$rowName</th>";
}
$resultHTML .="<th>Info / Køb varen</th></tr>\n";
while($row = $this->fetchRow()){
$resultHTML .="<tr>\n";
for($i=1; $i < $fieldCount; $i++)
$resultHTML .="<td>".htmlentities($row[$i])."</td>\n";
$action = str_replace("VALUE", $row[0], $actions);
$resultHTML .= "<td nowrap>&nbsp;$action</td>\n</tr>\n";
}
$resultHTML .= "</table>\n";
}else{
$resultHTML = "No results found";
}
return $resultHTML;
}
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