Hirdetés
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- koxx: Bloons TD5 - Tower Defense játék
- sh4d0w: StarWars: Felismerés
- Brogyi: CTEK akkumulátor töltő és másolatai
- eBay-es kütyük kis pénzért
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- GoodSpeed: Ebes, a megtervezett falu!
- GoodSpeed: Nem vénnek való vidék - Berettyóújfalu
Új hozzászólás Aktív témák
-
fordfairlane
veterán
válasz
zzolika
#10316
üzenetére
Ha annyi a követelmény, hogy ugyanazon az oldalon maradj, akkor ezt viszonylag egyszerű megoldani.
Nagyon leegyszerűsítve, a végrehajtási szál, egyetlen formra, egy fájlba téve a submit kezelését és a formot:
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$eredmeny = szamol($_POST['operandus1'], $_POST['operandus2']);
echo $eredmeny;
}
?>
<form action="" method="post">
<input type="text" name="operandus1" />
<input type="text" name="operandus2" />
<input type="submit" value="Számolj" />
</form>Ebbe persze még valahova bele kell rakni a "szamol()" függvény implementációját.
-
Soak
veterán
válasz
zzolika
#10316
üzenetére
Rosszul érted.
Egy egszerű ábra ahogy a php működik:

Magyarul, ha te a böngésző elött ülsz és megnézed a forráskódot akkor csak html lesz benne. Ha ugyanezt megnézed a szerveren akkor ott látni fogod a php kódot. Ennek az az okat, hogy a javascriptel ellentétben a php nem a user CPU-n dolgoztat, hanem a szerverén (eléggé leegyszerűsítve
) . Tehát ha a böngésző meghív egy oldalt az azt eredményezi, hogy a szerveren kiválasztott oldalt a szerver elöbb összerakja majd azután megmutatja. Ellentétben egy statikus html oldallal ahol a böngésző csak értelmezi a html kódot.A lényege az, hogy ha nem szerveren fut a php és ugy akarod megnézni (akár böngészővel) akkor egyszerűen írás lessz belőle.
Ha windosos környezetben dologozol akkor tedd fel a WAMP-ot (feltesz még egy-két dolgot, de egyik sem haszontalan) . Ezzel eléred azt, hogy ugymond a te gépeden egy könyvtár ki lesz nevezve servernek, ahova berakod a php-s odaladat, böngészőve beirod, hogy localhost/etc/file.php és akkor már látni fogod.
U.i.: A form action="" nem az a lényeg, hogy átírányítson, hanem az, hogy postot csak egyszer küldjön, ne minden frissitésnél.
-
fordfairlane
veterán
válasz
zzolika
#10316
üzenetére
Csakhogy te áttettél egy számítást szerveroldalra. Innentől kezdve a dolog nem függvényhívás, hanem adatok elküldése a szervernek, a szerver betölti a php értelmezőt, az végrehajtja a megfelelő php fájlt. Ebben a php fájlban meg kell vizsgálod a bejövő paramétereket, meg kell hívnod a megfelelő függvényt, össze kell állítanod a böngészőnek visszaküldendő adatokat.
Ez innentől egy elosztott rendszer, ahol nem létezik olyan, hogy sima függvényhívás. Innentől két külön gépen két külön folyamat van, ami között egy kezdetleges, request-response HTTP protokoll az egyetlen kommunikációs csatorna.
-
fordfairlane
veterán
válasz
zzolika
#10312
üzenetére
Tehát hiába rakom bele a PHP szubrutint az oldal kódjába, nem lehet ezt a PHP függvényt ugyanúgy meghívni, mint egy JavaScriptet?
Lényegében nem. Hiába raksz PHP kódrészletet egy fileba, az a kódrészlet a kliens számára láthatatlan marad, a kliens csak a PHP script kimenetét látja. Ha megnézed a html forrást a böngészőben, semmi jel nem utal arra, hogy szerveroldalon ezt mi és hogyan állította elő.
A böngésződnek arról nincs tudomása, hogy létezik-e szerveroldalon ilyen függvény, hiába rakod ugyanabba a fájlba a függvény implementációját, és a html kimenetet. A böngésző csupán fájlt tud "meghívni" (<form action="file.php">) különféle paraméterekkel. Azt már szerveroldalon kell megoldani, hogy a kapott paraméterek alapján a megfelelő függvény meghívódjon.
Tehát lényegében neked nem függvényt kell meghívnod, hanem kommunikálni kell tudnod a szerverrel.
-
Soak
veterán
válasz
zzolika
#10312
üzenetére
Hogyne lehetne. Az oldaladon nincsen beléptető rendszer amit php-vel oldottál meg? Ugyanúgy meg tudod ezt is csinálni.
kb így :
<?php
if(isset($_POST['submit'])) {
ide rakod amit akarsz csináltatni
}form meg igy néz ki
<form action="upload.php" enctype="multipart/form-data" method="POST">
<input type="submit" name="submit" value="Upload" />
</form>Fontos, hogy az action="" azt jelenti, hogy a form hol keresi a függvényt, ha üres akkor az adott oldalon keresi . valamint fontos a name is mert a $_POST onnan tudja, hogy most ő van porondon.
-
fordfairlane
veterán
válasz
zzolika
#10310
üzenetére
Nézz meg egy php tutorialt, amiben leírják, hogy hogyan kell formokat kezelni PHP-ben. Én is írhatnék ilyet, de egyrészt lusta vagyok, másrészt a neten egy tonnányi leírás van ilyen témában.
Annyi a lényege, hogy csinálsz egy formot, egy vagy több beviteli mezővel, raksz bele submit gombot, majd szerveroldalon PHP-ben kezelni kell a submit actiont, ami meghívja a megfelelő PHP-s függvényedet.
A másik lehetőség, hogy az oldal újratöltődése nélkül aszinkron módon kliensoldali scriptből indítasz el submitet (AJAX), a szerveroldalon ennek nagyjából ugyanaz a kezelése, mint a sima form submitnek.
Ezt vagy neked kell megírnod, vagy megfelelő frameworköt kell használod. Magában a böngészőkben és a PHP-ben nem létezik olyan fajta automatizmus (RPC, DCOM, CORBA), ami megoldja helyetted, hogy kliensoldalról simán meghívj egy szerveroldalon implementált függvényt vagy metódust.
Új hozzászólás Aktív témák
- Projektor topic
- Gigantikus fordulatot vett a GeForce RTX 50 Super sorozat törlése
- Fotók, videók mobillal
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Battlefield 6
- Ne várj sokat a vásárlással: drágulás a láthatáron
- Milyen légkondit a lakásba?
- Kamionok, fuvarozás, logisztika topik
- BestBuy topik
- További aktív témák...
- HIBÁTLAN iPhone 14 Pro Max 128GB Silver -1 ÉV GARANCIA - Kártyafüggetlen, MS3913, 100% Akkumulátor
- LG UltraGear Gaming Monitorok : BLACK NOVEMBER -30%
- Lenovo ThinkPad P14s Gen 1 i7-10510U 32GB 1000GB Nvidia Quadro P520 14" FHD Gar.: 1 év
- Eredeti Lenovo 230W töltők - 4X20Z83995
- Apple iPhone 12 Mini 64GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Laptopműhely Bt.
Város: Budapest
) . Tehát ha a böngésző meghív egy oldalt az azt eredményezi, hogy a szerveren kiválasztott oldalt a szerver elöbb összerakja majd azután megmutatja. Ellentétben egy statikus html oldallal ahol a böngésző csak értelmezi a html kódot.
