Autor | Zpráva | ||
---|---|---|---|
Borec Profil * |
#1 · Zasláno: 1. 9. 2011, 16:13:47
Dobrý den, potřebuju malou radu. mám problém s voláním funkcí, dělám skript, který když se otevře měla by se spustit funkce. Bude tam nahoře tlačítko, na něj když se klikne tak se otevře jedna speciální funkce a když se neklikne, tak se rovnou spustí další. abych vás nezatěžoval celý kodem, ukážu jen funkce, to co je v nich je v pořádku.
<form method = "POST"> <input type = "submit" class="button1" name="klik" value="Přidat příspěvek"> </form><br> <?php if (isset($_POST['klik'])) { PridejPrispevek(); }else{ Tabulka(); } //--------------------------------- function Tabulka() { echo "Funkce tabulka ve ktere je form, měla by se zobrazit, pokud neni kliknuto na tlacitko"; echo "<table>"; echo "<form action='#' method = 'POST'>"; <input type='text'> . . .. echo "<input type='submit' name='ok'></form></table>"; } if (isset($_POST['ok'])) { UlozTabulku(); } function UlozTabulku() { //sql příkaz na uložení } ?> omlouvám se že sem nedávám celý kod, má to přes 200 řádků a těžko byste se v tom orientovali, jde mi jen o to volání funkcí, mě to totiž nefunguje, původně jsem to měl udělaný tak, že byla funkce tabulka a hned pod ní jsem jí volal, potom následovala funkce uloztabulku a zase jsem jí hned volal, takže vlastně když tu stránku otevřu, tak se mi najednou volá několik funkcí, ale přitom funguje jen jedna, která potom předává data dále. tak jsem to vyřešil issetem a nefunguje to. kdo mi pomůře? |
||
Baklazan Profil |
#2 · Zasláno: 1. 9. 2011, 18:21:41 · Upravil/a: Baklazan
co je $_POST['ok'] ?
Nema tam byt if (isset($_POST['klik'])) |
||
Borec Profil * |
#3 · Zasláno: 1. 9. 2011, 21:26:33
Ne, to ok je name tlačítka ve funkci tabulka, když se na něj klikne proběhne funkce uloztabulku.
|
||
Alphard Profil |
#4 · Zasláno: 2. 9. 2011, 11:23:56
Četl jsem to několikrát, ale nevím, co to vlastně má dělat a co to dělá.
if (isset($_POST['klik'])) // tlačítko klik { PridejPrispevek(); // při stisknutí klik }else{ Tabulka(); // při nestisknutí klik } if (isset($_POST['ok'])) // tlačítko ok { UlozTabulku(); // při stisknutí ok } |
||
Borec Profil * |
#5 · Zasláno: 2. 9. 2011, 15:58:06
No zkrátka když se klikne na tlačítko, tak to zavolá nějakou funkci. v praxi je to tak, že mám formulář, ten se vyplní, potom se klikne na uložit a spustí se funkce, která ten form uloží. Nebo jak jinak se to dělá? Zkoušel jsem že jsem měl funkci a pod ní jsem jí volal, ale když jich mám ve skriptu 6, tak je to dost pomalý. přitom vždy stačí aby fungovala jen jedna funkce, protože na sebe navazují
|
||
pcmanik Profil |
#6 · Zasláno: 2. 9. 2011, 16:07:07
Borec:
A naco tam vlastne tie funkcie mas? Vyuzivas ich na viacerych miestach? Lebo tuto mi to nepride zrovna najlepsie riesenie. |
||
Borec Profil * |
#7 · Zasláno: 2. 9. 2011, 21:04:17
Nepoužívám je na více místech. Program funguje tak, že se z db vypíší data do tabulky, vedle ve sloupečku je nějaký input to je jedna funkce, potom když se ty inputy vyplní, klikne se na ok, tak proběhne isset a nastartuje funkce která to uloží do databáze. tam je potom podmínka, že když se data uloží, nastartuje 3. funkce která vypíše nově uložená data + k nim je roletkové menu s nějakým výberem, opět se vyplní, klikne a ok a spustí další funkce. Přišlo mi to lepší, než to rozdělovat na více skriptů.
Nebo jak byste mi doporučili to dělat? |
||
pcmanik Profil |
#8 · Zasláno: 2. 9. 2011, 21:06:23
Borec:
Staci pouzit isset, a vykonavat, ziadne funkcie teda niesu potrebne a len zneprehladnuju kod. |
||
okolojdouci Profil * |
#9 · Zasláno: 2. 9. 2011, 21:16:14
Borec:
Php soubor je běh po sobě jdoucích instrukcí. Můžeš mít třeba 10 kB php kódu, aniž bys tam měl nějakou funkci. Funkce mají ten účel a smysl, že je jednou napíšeš a pak z různých míst voláš. Jestli tvoje funkce PridejPrispevek() je volána jen z jednoho místa, tak nemá smysl a bylo by přehlednější, kdybys ji zrušil a místo jejího volání napsal rovnou její obsah. Nicméně.. i kdybys používal "jednorázové" funkce, tak by to muselo fungovat. Jestli to nefunguje, tak je problém někde jinde. Kde, to jsem z tvého popisu nepochopil. |
||
Borec Profil * |
#10 · Zasláno: 2. 9. 2011, 21:33:02
Moment, co je to jednorázová funkce?
A když teda udělám skript s funkcema a pak je budu chtít někde volat, tak jak to bude vypadat? jako že na té stránce udělám include "skriptsfunkcemi"; a potom tam někde udělám funkce()? |
||
okolojdouci Profil * |
#11 · Zasláno: 2. 9. 2011, 21:47:41
Borec:
Používej funkce, jak libo. Psal jsem jen o tom, že smysl funkce, kterou voláš jen z jednoho místa, je značně sporný. A vzhledem k tomu, že jaksi tápeš, se nezdá, že bys chápal, proč a jak se funkce běžně používají. A k tomuto: „jako že na té stránce udělám include "skriptsfunkcemi"; a potom tam někde udělám funkce()?“ Třeba. |
||
Bertram Profil |
#12 · Zasláno: 2. 9. 2011, 22:43:51
@borec
jestli jsem to dobře pochopil, tak skript má vypsat nějaké záznamy z db, zároveň zobrazit formulář pro jejich editaci a po jeho odeslání to samé pořád dokola? |
||
Borec Profil * |
#13 · Zasláno: 3. 9. 2011, 10:03:53
No vypíše data z formuláře, např jména k nim se zobrazí nějaký form a něco se tam napíše. uloží se do databáze ty jména s tím co se tam napsalo a zároven vypíše do další tabulky kde budou selecty z databáze a opět se to potom všechno uloží. nedělá se to pořád dokola, pokaždé se přiřazuje něco jiného
|
||
okolojdouci Profil * |
#14 · Zasláno: 3. 9. 2011, 10:45:01
Borec:
Rozumíš si? Zkus to ještě přeformulovat. |
||
Časová prodleva: 13 let
|
0