Jag håller på att skriva en liten klass som skall skriva ut html åt mig tänkte jag. Så jag har då skapat en index fil som inkluderar och anropar min klass
index.php
<?php
require_once("class.input.php");
$apa = new Input();
$array = array(type=>"text", name=>"sfdlkj", css=>"text", desc=>"inget_speciellt");
$apa->setInput($array);
echo($apa->getInput()); // funkar fint, skriver ut <input type="text" name="sfdlkj" class="text" value="" /> inget_speciellt <br />
$array2 = array(
array ( type=>"text", name=>"login", css=>"text", desc=>"Login namn"),
array ( type=>"password", name=>"password", css=>"text",
desc=>"Lösenord")
);
$apa->setInput($array2);
echo($apa->getInput()); // skriver ut <input type="" name="" class="" value="" /> <br />
?>
och så klassfilen
<?php
class Input
{
var $input;
function setInput($inputArray)
{
if (!is_array($inputArray)){
die("<br />\nERROR!<br />\nsetInput() need an array as argument<br />\n");
}
if ($inputArray[0] != "Array"){
// en enda array
$inputReturnString = "\t<input type=\"" . $inputArray['type'] . "\" name=\"" . $inputArray['name'] . "\" class=\"" . $inputArray['css'] . "\" value=\"" . $inputArray['value'] . "\" /> " . $inputArray['desc'] . " <br />\n";
} else {
// flera arrayer i en
$inputReturnString = "";
foreach ($inputArray as $array){
$inputReturnString = $inputReturnString . "\t<input type=\"" . $array['type'] . "\" name=\"" . $array['name'] . "\" class=\"" . $array['css'] . "\" value=\"" . $array['value'] . "\" /> " . $array['value'] . " <br />\n";
}
}
$this->input = $inputReturnString;
}
function getInput()
{
return $this->input;
}
}
?>
Och som det står i kommentaren i koden, skickar jag bara en vanlig array, så funkar det klockrent, men om jag skickar ett flertal arrayer i arrayen, så skriver den bara ut en enda rad, utan några värden i, trots att den, tycker jag, borde skriva ut en rad för varje array, eftersom jag lägger på den nyskapade raden i varje loop, i den gamla strängen, bakom värdena som redan finns där.
Någon som kan säga vad jag gör för fel här?
MVH Patrik