NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.

Diskuze – Lekce 2 - Tvorba formulářového frameworku v PHP - HtmlBuilder

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
rosatislav
Člen
Avatar
rosatislav:19.5.2014 21:07

Zdravím, chtěl bych se zeptat proč u funkce *

function addValueElement($name, $value, $htmlParams = array(), $doNotEscape = false)
{
        $this->startElement($name, $htmlParams, true);
        $this->addValue($value, $doNotEscape);
        $this->endElement();
}
  • dáváte funkci startElement ještě navíc "true", když se do ní mají dát jen hodnoty "$name a $htmlParams "
Editováno 19.5.2014 21:08
 
Odpovědět
19.5.2014 21:07
Avatar
Jiří Fabšic:16.6.2017 10:41

Ahoj, asi jsem nedával pozor při tutoriálech základů, ale co znamená přiřazení s tečkou?

.=

přiřazení se třeba hojně objevuje tady:

private function renderElement($name, $htmlParams, $pair)
{
        $this->html .= '<' . htmlspecialchars($name);
        foreach ($htmlParams as $key => $value)
        {
                $this->html .= ' ' . htmlspecialchars($key) . '="' . htmlspecialchars($value) . '"';
        }
        if (!$pair)
                $this->html .= ' /';
        $this->html .= '>';
        if ($pair)
                array_push($this->elementStack, $name);
}

Díky za vysvětlení,
Jirka

 
Odpovědět
16.6.2017 10:41
Avatar
Odpovídá na Jiří Fabšic
Martin Konečný (pavelco1998):16.6.2017 11:19

Ahoj,

pomocí tečky v PHP spojuješ řetězec (třeba jako v javascriptu plusem), přidání operátoru před 'rovná se' je pak jen kratší zápis:

$string = "řetězec";

$string = $string . " připojený text";

// kratší zápis
$string .= " připojený text";
Odpovědět
+1
16.6.2017 11:19
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Aleš Kopecký:26.5.2018 15:28

Navrhoval bych u metody endElement() ještě před přidáním řetězce do $html kontrolu, zda je něco v $name, protože elementStack může být prázdný a potom by metoda přidala jen '</>.
Třeba nějak takto:

public function endElement($name = null){
        if( ! $name){
            $name = array_pop($this->elementStack);
        }
        if(empty($name)){
            throw new Exception('No element opened for closing.');
        }
        $this->html .= '</' . htmlspecialchars($name) . '>';
    }
 
Odpovědět
26.5.2018 15:28
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.