Autor Zpráva
Borec
Profil *
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
co je $_POST['ok'] ?
Nema tam byt
  if (isset($_POST['klik'])) 
?
Borec
Profil *
Ne, to ok je name tlačítka ve funkci tabulka, když se na něj klikne proběhne funkce uloztabulku.
Alphard
Profil
Č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
}  
Teď tedy popište problém.
Borec
Profil *
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
Borec:
A naco tam vlastne tie funkcie mas? Vyuzivas ich na viacerych miestach? Lebo tuto mi to nepride zrovna najlepsie riesenie.
Borec
Profil *
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
Borec:
Staci pouzit isset, a vykonavat, ziadne funkcie teda niesu potrebne a len zneprehladnuju kod.
okolojdouci
Profil *
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 *
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 *
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
@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 *
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 *
Borec:
Rozumíš si? Zkus to ještě přeformulovat.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0