| Autor | Zpráva | ||
|---|---|---|---|
| David1256 Profil |
#1 · Zasláno: 6. 12. 2010, 18:03:16 · Upravil/a: David1256
Dobrý den, potřeboval bych, aby se mi po zadání dvou určitých údajů do formuláře načetla do divu footer stránka třeba formulare.php. Normálně by to zajistila funkce ajaxLoader(), která normálně funguje. Ale, jak to mám v php tak mi to napíše tuto chybu.
Fatal error: Call to undefined function: ajaxloader() in c:\inet_srv\http\doc_root\index.php on line 107 Tzn. jako, že php si neumí poradit s tou funkcí, i když je nadefinovaná ve scriptu v hlavičce webu? Jinak tady mám php script.
<?php
if (isset($_POST["jmeno"]) and isset($_POST["heslo"]))
{if (empty($_POST["jmeno"]) or empty($_POST["heslo"]))
echo "<font color=red>Nevyplnili jste potřebná pole.</font>" ;
else
{if ($jmeno == "Holy" && $heslo == "kodecek")
ajaxLoader('formulare.php','footer') ;
else
{
echo "<font color=red>Zadali jste nesprávné údaje.</font>";
}}} ?>
|
||
| Jostram Profil * |
#2 · Zasláno: 6. 12. 2010, 19:42:49
To znamená, že skript nenašel tuto funkci definovanou. Děje se to tehdy, když máte funkci v nějaké knihovně (třeba lib.php) a zapomene ji includovat do svého kódu.
|
||
| David1256 Profil |
#3 · Zasláno: 6. 12. 2010, 20:25:08
Ja jí mám v kódu, ale je to Javascriptova funkce. Je možné, že proto jí to nebere?
|
||
| Jostram Profil * |
#4 · Zasláno: 6. 12. 2010, 21:28:22
Aha. ano, nemůžete volat javascriptovou fci v PHP! zkuste toto:
<?php
if ( isset($_POST["jmeno"]) and isset($_POST["heslo"]) )
{
if ( empty($_POST["jmeno"]) or empty($_POST["heslo"]) ) echo "<font color=red>Nevyplnili jste potřebná pole.</font>" ;
else
{
if ($jmeno == "Holy" && $heslo == "kodecek") echo 'ajaxLoader(\'formulare.php\',\'footer\');';
else echo "<font color=red>Zadali jste nesprávné údaje.</font>";
}
}
?>a pokud bych mohl poradit, učesejte si ten kód - třeba nějak takto: <?php
if ( isset($_POST["jmeno"]) && isset($_POST["heslo"]) )
{
if ($jmeno == "Holy" && $heslo == "kodecek") echo 'ajaxLoader(\'formulare.php\',\'footer\');';
else echo '<font color="red">Zadali jste nesprávné údaje.</font>';
}
else echo '<font color="red">Nevyplnili jste potřebná pole.</font>';
?> |
||
| David1256 Profil |
Hm, tak to nefunguje :-(. Vypíše to jen ten text s tím ajaxLoader…., zkrátka ho to vezme jen jako text. Takže nemáte někdo ještě nějaký nápad? Jestli ne, tak se ještě poptám v rámci nového dotazu ohledně toho, jak by šel můj problém vyřešit. (Jinak než ajaxLoaderem)
|
||
| Jostram Profil * |
#6 · Zasláno: 7. 12. 2010, 20:54:28
David1256:
ta funkce ajaxLoader je javacript, takže samozřejmě musí být v tagu <script>. Ten kód jsem psal jako jakýsi nástřel s tím, že zbytek uděláte sám... |
||
| David1256 Profil |
#7 · Zasláno: 7. 12. 2010, 21:00:49
Tak bohužel, i když to dám mezi tagy <script> vrací se to k původní chybě a sice
Fatal error: Call to undefined function: ajaxloader() in c:\inet_srv\http\doc_root\index.php on line 107 |
||
| TomášK Profil |
#8 · Zasláno: 7. 12. 2010, 21:11:00
David1256:
Je důležité, abyste si uvědomil, proč ta chyba vzniká, proč to ani fungovat nemůže. PHP generuje kód na serveru, Javascript se vykonává až v prohlížeči. Není tedy možné volat v PHP funkci javascriptu, jedině vygenerovat validní javascriptový kód, který se pak v prohlížeči spustí. Nešlo by použít include |
||
| Davex Profil |
#9 · Zasláno: 7. 12. 2010, 21:11:34
David1256:
PHP skript se provede na serveru a prohlížeči posílá až výsledný HTML kód. Pokud chceš vypisovat JavaScript, který se provádí až v prohlížeči, tak ho musíš vypsat jako součást HTML kódu a nemít ho jako součást PHP. |
||
| Keeehi Profil |
#10 · Zasláno: 7. 12. 2010, 21:12:25
David1256:
„ak bohužel, i když to dám mezi tagy <script> vrací se to k původní chybě a sice“ To si proto, že neumíš zapisovat řetězce. Ukaž jak jsi to vykoumal a my ti to opravíme |
||
| David1256 Profil |
#11 · Zasláno: 7. 12. 2010, 21:23:49
TomášK:
Include mi ale jen dopíše obsah scriptu za již vytvořený obsah v divu footer, ale já ho chci jakoby přepsat tím ajaxloaderem. Tzn. že se mi dosavadní obsah divu footer přepíše stránkou formulare.php, ale to mi include nezajistí. |
||
| David1256 Profil |
#12 · Zasláno: 7. 12. 2010, 21:25:14
Keeehi:
<?php
{if (isset($_POST["heslo"]))
if (empty($_POST["heslo"]))
echo "<br><font color=red>Nejdříve vyplňte pole.</font>";
else
if (isset($_POST["heslo"]))
{if ($heslo != "kodecek" )
echo "<br><font color=red>Zadané heslo není správné.</font>" ;}
}?>
<br><br>
<center><input type=submit value="Přihlásit se"></center>
</form>
<?php
if (isset($_POST["jmeno"]) and isset($_POST["heslo"]))
{if (empty($_POST["jmeno"]) or empty($_POST["heslo"]))
echo "<font color=red>Nevyplnili jste potřebná pole.</font>" ;
else
{if ($jmeno == "Holy" && $heslo == "kodecek")
echo "<script>ajaxLoader(\'formulare.php\',\'footer\')</script>";
else
{
echo "<font color=red>Zadali jste nesprávné údaje.</font>";
}}} ?> |
||
| David1256 Profil |
#13 · Zasláno: 7. 12. 2010, 21:28:38
Tak ještě změna už to funguje vlastně, ale nepřepíše mi to ten obsah toho divu, ale zase to hromadí obsah formularu.php až za již vytvořený obsah, takže to vypadá, že ten ajaxloader "funguje jako include".
|
||
| Keeehi Profil |
#14 · Zasláno: 7. 12. 2010, 21:29:04 · Upravil/a: Keeehi
David1256:
„Tak ještě změna už to funguje vlastně, ale nepřepíše mi to ten obsah toho divu, ale zase to hromadí obsah formularu.php až za již vytvořený obsah, takže to vypadá, že ten ajaxloader "funguje jako include".“ Toto zase budeš muset řešit v JS, který tu změnu obstarává. Kód nemáme, takže nemůžeme radit. |
||
| David1256 Profil |
#15 · Zasláno: 7. 12. 2010, 21:30:21 · Upravil/a: David1256
Tak již naposled měl sem tam menší chybičku, takže už to funguje, jak jsem chtěl, díky všem za rady.
|
||
|
Časová prodleva: 15 let
|
|||
0