Autor Zpráva
Geork
Profil *
Zdravim,

nedari se mi zavolat funkce z a href

<?

function myFce($x)
{
//do something with $x

echo"<a href="ZDE BYCH CHTEL VOLAT myFce($x)>"click here"</a>";

}
?>

~Jiri
karbon
Profil *
To, co jste napsal, znamená pouze deklaraci funkce. Vy ji potřebujete ale i zavolat. Také to, že voláte v těle funkce stejnou funkci se nazývá rekurze a je docela důležité si dávat na takové konstrukce pozor, protože mohou způsobit zacyklení. Ten kód bych napsal takto:
function x(){
  // neco, co ta funkce provede...
  echo 'Funkce x je v akci!';
{
// tady uz volani te nadeklarovane funkce
echo 'Zavolame funkci: '.x().'';

Také by bylo dobré ujasnit si, s jakým jazykem pracujeme. Tu funkci deklarujete nejspíše v jazyce PHP, ale volat byste ji chtěl v jazyce, který pracuje u klienta. Tu funkci chcete spouštět ihned po kliknutí u klienta?
karbon
Profil *
Omlouvám se, ten kód obsahuje špatnou závorku. Správně je to takto:
function x(){
  // neco, co ta funkce provede...
  echo 'Funkce x je v akci!';
}
// tady uz volani te nadeklarovane funkce
echo 'Zavolame funkci: '.x().'';
fuckin
Profil *
geork
To echo ti patri jeste do te funkce, nemuzes volat uvnitr funkce tu samou funkci ktera jeste neni nadeklarovana....

karbon
Podiv se poradne, kdyz chce generovat url tak asi na strane serveru ne? :D...neplet tu js a jeho udalosti...
AM_
Profil
fuckin
To echo ti patri jeste do te funkce, nemuzes volat uvnitr funkce tu samou funkci ktera jeste neni nadeklarovana....
ne? a jak je pak možné psát rekurzivní funkce?

Geork
O co vlastně usiluješ? chceš, aby se do href="" zapsal dynamicky vytvořený odkaz pomocí té funkce, nebo aby se při kliknutí na odkaz zavolala ta funkce (což takhle přímo nejde)?

jinak php se otvírá pomocí <?php, <? je takzvaný short_open_tag, který způsobuje jedině problémy.
Geork
Profil *
Diky za rychlou reakci, ale nevim zda je to presne to co chci. Cilem je vypsat vsechny podadresare (jako "link-y")ze zvoleneho adresare, a kdyz na nektery kliknu otevrou se mi adresare ktere jsou ve zvolenem adresari, proto ta rekurze ;-).
Geork
Profil *
...... uz jsem to castecne rozjel

fuckin: "To echo ti patri jeste do te funkce, nemuzes volat uvnitr funkce tu samou funkci ktera jeste neni nadeklarovana.... "
- jsem si jisty ze muzu.
Geork
Profil *
AM_ "....O co vlastně usiluješ? chceš, aby se do href="" zapsal dynamicky vytvořený odkaz pomocí té funkce, nebo aby se při kliknutí na odkaz zavolala ta funkce (což takhle přímo nejde)? "

- Usiloval jsem o to, aby se po kliknuti zavolala funkce
AM_
Profil
- Usiloval jsem o to, aby se po kliknuti zavolala funkce
takhle to nejde. PHP se provede při načtení stránky na straně serveru a v době, kdy už si uživatel vesele prohlíží výslednou HTML stránku, po běhu PHP skriptu není ani památky. Takže odkaz by měl vypadat nějak takhle:
echo '<a href="vypis.php?adr='.urlencode($adresar).'">'.$adresar.'</a>';

přičemž adresář se nevypisuje funkcí, ale skriptem vypis.php.
Geork
Profil *
"takhle to nejde. PHP se provede při načtení stránky na straně serveru a v době, kdy už si uživatel vesele prohlíží výslednou HTML stránku, po běhu PHP skriptu není ani památky. Takže odkaz by měl vypadat nějak takhle:
1 echo '<a href="vypis.php?adr='.urlencode($adresar).'">'.$adresar.'</a>';
přičemž adresář se nevypisuje funkcí, ale skriptem vypis.php."

souhlas, k necemu takovemu jsem se nakonec dopracoval.
Geork
Profil *
Diky za pomoc vsem vyse zucastnenym.

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