PHP and HTML interact a lot: PHP can generate HTML, and HTML can pass information to PHP. Mielőtt elolvasná ezeket a GYIK-eket, fontos, hogy megtanulja, hogyan lehet A változókat külső forrásokból letölteni. A kézi oldal ebben a témában számos példát is tartalmaz.
milyen kódolásra / dekódolásra van szükségem, amikor egy értéket átadok egy űrlapon / URL-en keresztül?
Több szakasz van, amelyekre a kódolás fontos., Feltételezve, hogy van egy $data karakterlánc, amely nem kódolt módon tartalmazza a továbbadni kívánt karakterláncot, ezek a releváns szakaszok:
-
HTML értelmezés. Annak érdekében, hogy adjon meg egy véletlen karakterlánc, akkor tartalmaznia kell azt a dupla idézetek, htmlspecialchars () a teljes értéket.
-
URL: egy URL több részből áll. Ha azt szeretné, hogy az adatokat egy elemként értelmezzék, akkor azt urlencode () kódolással kell kódolnia.,
példa #1 A hidden HTML form element
<?php
echo '<input type="hidden" value="' . htmlspecialchars($data) . '" />'."\n";
?>
Megjegyzés: helytelen az urlencode() $adatokra, mivel ez a böngészők felelőssége az urlencode-hoz () az adatok. Minden népszerű böngésző ezt helyesen teszi. Ne feledje, hogy ez a módszertől függetlenül történik (azaz GET vagy POST). Ezt csak akkor veszi észre, ha kérést kap, mert a postai kérések általában rejtve vannak.,
Megjegyzés: Az adatok a böngészőben rendeltetésszerűen jelennek meg, mivel a böngésző értelmezi a HTML Escape szimbólumokat. A beküldés után, akár GET, akár POST útján, az adatokat a böngésző urlencodálja az átvitelhez, közvetlenül pedig a PHP által kódolt urldecoded. Tehát végül nem kell semmilyen urlencoding/urldecoding-ot elvégeznie, mindent automatikusan kezelnek.,
példa #3 URL-ben
<?php
echo '<a href="' . htmlspecialchars("/nextpage.php?stage=23&data=" .
urlencode($data)) . '">'."\n";
?>
Megjegyzés: valójában egy HTML GET kérés, ezért manuálisan kell urlencode() az adatokat.
Megjegyzés: Meg kell htmlspecialchars() az egész URL, mert az URL értéke egy HTML-attribútum. Ebben az esetben a böngésző először un-htmlspealchars() az értéket, majd adja át az URL-t. PHP fogja érteni az URL-t helyesen, mert urlencode () d az adatokat., Észre fogod venni, hogy az URL-ben a
&
helyébe a&
lép. Bár a legtöbb böngésző helyreáll, ha elfelejti ezt, ez nem mindig lehetséges. Tehát akkor is, ha az URL nem dinamikus, meg kell htmlspecialchars() az URL.
< input type=”image” > tag, de a $foo.x és $ foo.y változók nem állnak rendelkezésre. A $ _GET sem létezik. Hol vannak?,
űrlap elküldésekor a szabványos Küldés gomb helyett egy képet lehet használni olyan címkével, mint:
<input type="image" src="https://www.php.net/manual/en/faq.html.phpimage.gif" name="foo" />
amikor a felhasználó valahol a képre kattint, a kísérő űrlapot két további változóval továbbítják a kiszolgálónak: foo.x és foo.y.
mert foo.x és foo.y volna, hogy érvénytelen a változó nevek PHP, ők automatikusan át foo_x, valamint foo_y. Ez az időszak helyébe hangsúlyozza., Tehát hozzáférhet ezekhez a változókhoz, mint bármely más, a változók külső forrásokból történő visszakereséséről szóló szakaszban leírtak. Például $_GET.
Megjegyzés:
a kérelemben szereplő szóközök változó nevekké alakulnak.
Hogyan hozhatok létre tömböket HTML <form>?,
a <form> eredmény tömb formájában elküldve a PHP szkripthez a <input>, <select> vagy <textarea> ilyen elemek:
<input name="MyArray" /><input name="MyArray" /><input name="MyArray" /><input name="MyArray" />
div > figyeljük meg a szögletes zárójelben után a változó neve, ez az, ami miatt egy tömb., Lehet-csoport az elemeket a különböző tömbök hozzárendelésével ugyanaz a neve, hogy a különböző elemek:
<input name="MyArray" /><input name="MyArray" /><input name="MyOtherArray" /><input name="MyOtherArray" />
igy két tömbök, MyArray, valamint MyOtherArray, hogy lesz küldeni a PHP script. A tömbökhöz speciális kulcsokat is lehet rendelni:
<input name="AnotherArray" /><input name="AnotherArray" /><input name="AnotherArray" /><input name="AnotherArray" />
az AnotherArray tömb mostantól tartalmazza a 0, 1, e-mail és telefon kulcsokat.
Megjegyzés:
a tömbkulcsok megadása nem kötelező a HTML-ben., Ha nem adja meg a kulcsokat, a tömb kitöltődik abban a sorrendben, ahogy az elemek megjelennek az űrlapon. Első példánk a 0, 1, 2 és 3 kulcsokat tartalmazza.
Lásd még: Tömbfüggvények és változók külső forrásokból.
Hogyan kapom meg az összes eredményt egy kiválasztott több HTML tag?
A több címke kiválasztása egy HTML-konstrukcióban lehetővé teszi a felhasználók számára, hogy több elemet válasszanak ki a listából. Ezeket az elemeket ezután átadják az űrlap műveletkezelőjének. A probléma az, hogy mindegyiket ugyanazzal a widget névvel adják át. I. e.,
<select name="var" multiple="yes">
Minden kiválasztott lehetőség érkezik a cselekvési handler, mint:
var=option1var=option2var=option3
Minden beállítás felülírja a tartalma az előző $var változó. A megoldás a PHP “array from form element” funkciójának használata. A következőket kell használni:
<select name="var" multiple="yes">
ez azt mondja a PHP-nek, hogy a $VAR-t tömbként kezelje, és minden érték hozzárendelése a var-hoz hozzáad egy elemet a tömbhöz. Az első elem $var, a következő $var stb., A count () függvény segítségével meghatározható, hogy hány opció van kiválasztva, a rendezés () függvény pedig az opciós tömb rendezésére használható, ha szükséges.
vegye figyelembe, hogy ha a JavaScript a az elem neve problémákat okozhat, ha megpróbálja hivatkozni az elem neve. Használja helyette a numerikus form elem azonosítóját, vagy csatolja a változó nevét egyetlen idézőjelbe, és használja ezt az elem tömb indexeként, például:
variable = document.forms.elements'];
Hogyan adhatok át egy változót a Javascriptből a PHP-be?,
mivel a Javascript (általában) kliens oldali technológia, a PHP (általában) szerver oldali technológia, és mivel a HTTP egy “hontalan” protokoll, a két nyelv nem oszthat meg közvetlenül változókat.
Ez azonban lehetséges, hogy adja át a változókat a kettő között. Ennek egyik módja a Javascript kód generálása a PHP-vel, valamint a böngésző frissítése, bizonyos változók visszaadása a PHP szkriptbe. Az alábbi példa pontosan megmutatja, hogyan kell ezt megtenni – lehetővé teszi a PHP kód számára a képernyő magasságának és szélességének rögzítését, ami általában csak a kliens oldalon lehetséges.,