- Végre elkezdődik a DGX Spark gépek szállítása
- Négy nagy x86-os újítással készül a jövőre az AMD és az Intel
- HiFi műszaki szemmel - sztereó hangrendszerek
- Apple MacBook
- Milyen billentyűzetet vegyek?
- Kormányok / autós szimulátorok topikja
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Itt a Panther Lake és az Intel rendkívül sokat vár tőle!
- VR topik (Oculus Rift, stb.)
- Bambu Lab 3D nyomtatók
Ú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
- XPEnology
- Mibe tegyem a megtakarításaimat?
- One otthoni szolgáltatások (TV, internet, telefon)
- Kerékpárosok, bringások ide!
- Végre elkezdődik a DGX Spark gépek szállítása
- Battlefield 6
- Négy nagy x86-os újítással készül a jövőre az AMD és az Intel
- World of Tanks - MMO
- exHWSW - Értünk mindenhez IS
- HiFi műszaki szemmel - sztereó hangrendszerek
- További aktív témák...
- AKCIÓ ÚJ Bontatlan Macbook Pro 14 M4 MAX 14 32GPU 36GB 1TB Magyar billentyűzet Azonnal átvehető Deák
- BONTATLAN Új Ipad 9th 10th 11 gen. Air 6 7 , Ipad Pro Mini 7 IPADEK Azonnal DEÁK Térnél Átvehető.
- BONTATLAN Új iPhone 17 PRO MAX 256-512GGB Független 1év Apple GARANCIA Deák Térnél Azonnal Átvehető.
- Dell Precision 7740 Workstation 17,3", i9-9980HQ, 32GB, RTX3000 6GB
- Gamer PC - i5 14600k, RTX 3080 és 32gb RAM + GARANCIA
- LG 27GR95QL - 27" OLED / Limitált LoL Edition / QHD 2K / 240Hz & 0.03ms / NVIDIA G-Sync / FreeSync
- ÁRGARANCIA!Épített KomPhone i5 14400F 32/64GB RAM RX 9060 XT 8GB GAMER PC termékbeszámítással
- HIBÁTLAN iPhone 14 128GB Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3528, 93% Akkumulátor
- 10magos! Fémvázas! HP EliteBook 860 G9 i7-1255U 16GB 512GB 16" FHD+
- GYÖNYÖRŰ iPhone 11 64GB White-1 ÉV GARANCIA - Kártyafüggetlen, MS3123
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest