vypnuti escapovani u hodnot selectu

- jirkamailto
 - Člen | 27
 
Dobry den,
potreboval bych se zeptat, zdali existuje moznost vypnuti escapovani u moznosti
selectu ve formulari. Mam formular, v nem select, volby se sestavaji z popisu
fyzikalni veliciny a vedle toho by mela byt jednotka. Tato jednotka je
v databazi ulozena v html kodu, ale pri vypisu se escapuje. Bohuzel se mi
zatim nepodarilo escapovani vypnout. Predem dekuji za odpovedi.

- westrem
 - Člen | 398
 
No a nefunguje ti nieco ako nasledovne:
$options = array(
	'id' => Html::el()->setHtml($value),
	..
);
Je to len ukazka, neviem ako a kde mas ulozene data, ale imho ked by si
z options sparvil pole, kde hodnoty su v Html tak by to malo ist. Tieto
$options potom staci predat select-u pri vytvarani.

- jirkamailto
 - Člen | 27
 
ja mam funkci, ktere se preda vysledek z databaze a ona sestavi pole pro select. Funkce je nasledujici
<?php
$array = array(
            'null' => '-----'
        );
        foreach ($result as $row)
        {
            $col2 = HTML::el()->setHtml($row["$column2"]);
                $temparray = array(
                    $row["$keycolumn"] => $row["$column1"] . ' ' . '[' . $col2 . ']' ,
                );
                $array = $array + $temparray;
        }
        return $array;
?>
Kde $row[„$column2“] je ta jednotka ulozena v databazi. Funkce udela ze dvou hodnot jeden popisek hodnoty v selectu. Tohle bohuzel nefunguje.

- Filip Procházka
 - Moderator | 4668
 
samozřejmě že to nebude fungovat…
function necoNeco()
{
	$result = dibi::query("SELECT sloupec1, sloupec2, sloupec3 FROM ... ")->fetchAssoc('sloupec1->');
        foreach ($result as $keyColumn => $row) {
		// tady vzniká trošku bezpečnostní díra, nemělo by být v databázi nic čemu nevěříš
		// popř. můžeš ještě escapovat $row["sloupec2"] pomocí htmlspecialchars() pro klidné spaní
		$result[$keyColumn] = Html::el()->setHtml($row["sloupec2"] . ' [' . $row["sloupec3"] . ']');
        }
        return $result;
}
// ...
$form->addSelect('blabla', 'Popisek', $model->necoNeco())
	->skipFirst('----'); // takhle se správně dělá to tvoje první null
proč to dělat jednoduše, když to jde složitě :)
Editoval HosipLan (22. 10. 2010 8:26)