Autor Zpráva
rollerblade
Profil *
Dobrý den:) Prosím o radu, mám kontaktní formulář. A abych ho nemusel vytvářet třikrát. Pro každou kategorii. Chtěl bych, aby se u každého, změnil nadpis podle toho na jaké jsem kategorii. Příklad: jsem na stránce přeprava a tady mám poptávkový formulář a já chci, aby v H2 byla přeprava. A když budu jinde tak zase třeba doprava.. napište mi prosím jak na to:) Děkuju....
sun
Profil *
Do formuláře

<?php
$nadpis_form = 'Přeprava ';
echo '<h2>'.$nadpis_form.'</h2>';
?>

Na jiné stránce, kde máš dopravu jen změníš $nadpis_form = 'Doprava ';
Martin02
Profil
rollerblade:
Záleží na tom, jak si uživatel vybírá, jaký chce formulář. Když třeba bude vybírat pomocí odkazu, který se bude určovat proměnnou $_GET[formular], tak to jde přes php takto:
<?php
if($_GET['formular'] == "preprava") {
echo '<h2>Přeprava</h2>';
} else if...
?>

Nevím, jak umíš používat php, kdyžtak sem napiš, mohu to vsvětlit podrobněji.
sun
Profil *
Martin02:
Docela to komplikuješ :-) To už rovnou můžeš vypisovat jak to dělat třeba pomocí pole :-)
Na druhou stranu tvé řešení pro něho možná bude přijatelnější.
Martin02
Profil
Souhlasím, že pro začátečníka to není zrovna nejlepší řešení, ale když se podívám na tvoje řešení, zadavatel septal na to, jak to udělat, aby nemusel vytvářet 3 soubory a to myslím tvůj nápad neřeší.
sun
Profil *
Řeší pokud na každé stránce bude výstižný $nadpis_form :-) Tvůj příklad je pěkný, ale v případě, že by formulář byl používán na 10 stránkách, tak by bylo na můj vkus moc podmínek a to mám bohužel i vliv na načítání. Sice tak malej, že to nestojí za řeč, ale když by takhle řešil každou věc na stránce, tak už se to promítne i při načítání.

Stránka: preprava.php
<?php
$nadpis_form = 'Přeprava ';
echo '<h2>'.$nadpis_form.'</h2>';
?>

Stránka: doprava.php
<?php
$nadpis_form = 'Doprava';
echo '<h2>'.$nadpis_form.'</h2>';
?>

Je mnoho způsobů jak předat nadpis, ale tohle se mi zdá na jeho potřebu nejpřijatelnější.
Martin02
Profil
Jo, ale jaký je rozdíl mezi echo $nadpis v php a <h2>.. v html?
To moje řešení používá jen jeden soubor.
panther
Profil
Martin02:
Jo, ale jaký je rozdíl mezi echo $nadpis v php a <h2>.. v html?
žádný nadpis v PHP neexistuje, PHP vygeneruje HTML, konkrétně h2.
sun
Profil *
Necháme to na rollerblade :-) Pán se ještě k ničemu nevyjádřil a je fakt, že by bylo dobrý vědět jestli to má být pouze v jednom souboru nebo ve více. Když se pán ptá na tak základní věc, tak předpokládám, že se jedná o více souborů a proto je lepší co jsem napsal. Je na něm co si vybere a právě na něčem pracuju, tak nemám sílu se přetahovat o základních věcech.

Jen dodám pro pána:
Pokud stránky napojujete (include) metodou get, tak má pravdu "oponent" a pokud je každá stránka originál a formulář získávíte opět pomocí include, tak mám pravdu já.
Martin02
Profil
panther:
"žádný nadpis v PHP neexistuje, PHP vygeneruje HTML, konkrétně h2."
Tak jaký je rozdíl mezi tím, že nadpis vygeneruje php a v html se zobrazí <h2>... a nebo že se to napíše přímo do php - <h2>...?
Je to úplně stejné a na tohle není vůbec potřeba php. Php je v tuto chvíli dobré na to, aby nemusely být použity 3 soubory, ale jen jeden.
panther
Profil
Martin02:
Tak jaký je rozdíl mezi tím
pro prohlížeč žádný, ten vůbec neví, jestli je nadpis (nebo jakékoliv další HTML) napsáno „ručně“ do HTML zdrojového kódu, nebo je tam dosazeno na základě nějaké logiky na serveru.

Když už píšu, tak: [#3] Martin02
- lépe by bylo použít switch
- do proměnné je lépe přiřazovat je obsah proměnné (tedy pouze text), <h2> se dá doplnit až při výpisu (ideálně v šabloně, která bude bokem od logiky PHP). Je to pro přehlednost a snažší orientaci v kódu - představ si, že budeš mít 50 stránek a budeš chtít nahradit dvojkový nadpis za trojkový. Zblázníš se z toho (ano, existuje hromadné nahrazení v souboru, ale takto se to prostě nedělá - je nesmysl pořád pod sebe kopírovat tentýž kousek kódu).
Martin02
Profil
panther:
Ano, v tom s tebou souhlasím. Jinak, v tomto případě bych použil spíše 3x zkrácený zápis if než tam dávat switch. Kdyby tam bylo více možností tak jo, ale při 3 krátkých výpisů proměnných ne.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: