- Apple MacBook
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Házimozi belépő szinten
- Külső merevlemezek - USB, eSATA, FireWire HDD
- HiFi műszaki szemmel - sztereó hangrendszerek
- Monitor hiba topik
- VR topik (Oculus Rift, stb.)
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
Ú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
Hirdetés
- HP EliteBook 835 G7 AMD Ryzen 5 4650U
- GYÖNYÖRŰ iPhone 15 Plus 128GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3354
- GYÖNYÖRŰ iPhone 12 mini 64GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS2954
- 0% THM 6 havi részlet, beszámítás! Gamer PC, notebook, konzol, Apple termék, hardver KAMATMENTESEN!
- Bomba ár! HP EliteBook 735 G6 - Ryzen PRO 5 I 8GB I 256GB SSD I 13,3" FHD I Cam I W10 I Gari!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: FOTC
Város: Budapest