So jetzt komme ich auch mal dazu hier was zu posten.
Und zwar geht es um eine selber programmierte Template-Klasse, die ich um eine Funktion erweitern möchte, die mit Hilfe einer mySQL-Abfrage automatisch eine Auswahlliste (<option>) erstellt.
Nur stehe ich auf dem Schlauch, wie so etwas anzufangen ist, da das besondere dabei ist, dass ich am liebsten in den Templates z.B. nur {AUSWAHLLISTE} stehen haben möchte und beim ersetzen dann die x-fachen <option>-Felder erscheinen.
Als Beispiel: Ich lese z.B. aus ner mySQL-DB Projekte aus und möchte dann eine Liste haben mit den Projekten. Als value bei der <option> soll die jeweilige id des Projekts angezeigt werden und als "Beschriftung" dann halt der Name.
Soviel zur Theorie. Ich poste nun erstmal nen Auszug aus meiner Klasse und zeige euch dann mal einen Ansatz.
Funktion setvar
Funktion setarray
So das sind denke ich die beiden Funktionen, die für mein Problem evtl. noch wichtig sein sollten.
So jetzt zurück zu meinem Problem. Ich dachte mir dass ich das am besten so anfange, dass ich die Datensätze erst einmal in ein Array lade.
jetzt hab ich ja alle Datensätze im Array $res_arr. Ausgeben könnte man das ganze jetzt ja z.B. mit
So jetzt mein Ansatz wie ich das mit der Klasse verbinde:
Diese Variable var könnte man jetzt mit echo ausgeben und dann hab ich meine Liste.
Nur möchte ich ja, dass ich z.B. in mein Template schreibe {AUSWAHLLISTE} und dann dort die Liste erscheint.
Deshalb meine Frage: Wie könnte ich das machen bzw. was muss ich an den Funktionen ändern/hinzufügen ?
Ich hoffe ihr könnt mir helfen!
Und zwar geht es um eine selber programmierte Template-Klasse, die ich um eine Funktion erweitern möchte, die mit Hilfe einer mySQL-Abfrage automatisch eine Auswahlliste (<option>) erstellt.
Nur stehe ich auf dem Schlauch, wie so etwas anzufangen ist, da das besondere dabei ist, dass ich am liebsten in den Templates z.B. nur {AUSWAHLLISTE} stehen haben möchte und beim ersetzen dann die x-fachen <option>-Felder erscheinen.
Als Beispiel: Ich lese z.B. aus ner mySQL-DB Projekte aus und möchte dann eine Liste haben mit den Projekten. Als value bei der <option> soll die jeweilige id des Projekts angezeigt werden und als "Beschriftung" dann halt der Name.
Soviel zur Theorie. Ich poste nun erstmal nen Auszug aus meiner Klasse und zeige euch dann mal einen Ansatz.
Funktion setvar
PHP:
function setvar($name = '', $value = ''){
$name = strtoupper($name);
if(!$name)
{
$this->_error .= "No Placeholder for the value '".$name."' selected!<br>";
}
else
{
if(!is_array($name) AND !is_array($value)) $this->_content = str_replace("{".$name."}", $value, $this->_content);
if(is_array($name) AND !$value) $this->setarray($name);
}
}
Funktion setarray
PHP:
function setarray($array){
foreach ($array as $placeholder => $thevalue) {
$this->setvar($placeholder, $thevalue);
}
}
So das sind denke ich die beiden Funktionen, die für mein Problem evtl. noch wichtig sein sollten.
So jetzt zurück zu meinem Problem. Ich dachte mir dass ich das am besten so anfange, dass ich die Datensätze erst einmal in ein Array lade.
PHP:
$res_arr = array();
$query = "SELECT id, projectname FROM $dbprefix"."projects";
$result = mysql_query($query);
$count = mysql_num_rows($result);
while ($row = mysql_fetch_array($result)) {
$res_arr[] = $row;
}
jetzt hab ich ja alle Datensätze im Array $res_arr. Ausgeben könnte man das ganze jetzt ja z.B. mit
PHP:
echo $res_arr['1']['projectname'];
So jetzt mein Ansatz wie ich das mit der Klasse verbinde:
PHP:
function selectarray($array, $placeholder){
if(is_array($array)){
sort($array);
$x = 0;
foreach($array as $id => $projectname){
$var = "<option value=\"".$array[$x]['id']."\">".$array[$x]['projectname']."</option>\n";
$x++;
}
} else{
$this->_error .= "You must select an Array for the function 'selectarray' !<br>";
}
}
Diese Variable var könnte man jetzt mit echo ausgeben und dann hab ich meine Liste.
Nur möchte ich ja, dass ich z.B. in mein Template schreibe {AUSWAHLLISTE} und dann dort die Liste erscheint.
Deshalb meine Frage: Wie könnte ich das machen bzw. was muss ich an den Funktionen ändern/hinzufügen ?
Ich hoffe ihr könnt mir helfen!