vypnuti escapovani u hodnot selectu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
jirkamailto
Člen | 27
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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)