СервизСервиз за компютри, лаптопи, поддръжка

ПродаваЧасти и компоненти, лаптопи и компютри

СтатииПолезни статии на компютърна тематика

Бързо присвояване на променливи от форма в PHP

Основното приложение на HTML формите при уеб разрабоките е изпращането на информация от страна на потребителя към сървъра.

Тук няма да се спираме конкретно на самите HTML форми, които сами по себе си са безмислени, тъй като след като информацията бъде изпратена, нашият PHP скрипт трябва да я обработи по подходящия начин.

За да тестваме конкретния прост пример, в root-a на нашия уеб сървър създаваме директория test , a в нея файл index.php.

В примера, ще пропускаме html кода, който няма директно отношение към нашия php скрипт, като body, head и meta тагове.

Във файла index.php създаваме една проста html форма с 3 променливи, които ще бъдат изпратени - име, възраст и email, като използваме POST метода:

echo " <form action="$PHP_SELF" method="post"> <label>Име:</label><input type="text" name="name" /><br /> <label>Години:</label><input type="text" name="age" /><br /> <label>E-mail:</label><input type="text" name="mail" /><br /> <input type="submit" value="изпрати" /> </form>";

В началото на скрипта добавяме:

if(!empty($_POST)) { echo "Вие се казвате:".$_POST["name"]."<br />"; echo "Вашата възраст е:".$_POST["age"]."<br />"; echo "Вашият e-mail e:".$_POST["mail"]."<br />"; }

Така, след потвърждаването на формата, инфромацията, която сме въвели ще бъде изведена на екрана посредством $_POST променливата, която представлява асоциативен масив от променливи, изратени на скрипта посредством POST метода. Тъй като има проверка за потвърждаване на формата, ако няма такова, нищо няма да бъде изведено, освен самата форма.

До тук всичко е наред, но когато се налага да използваме на много места в скипта тези промелниви, се появява неудобството, свързано с изписването им. Например, когато трябва да използваме годините на потребителя в някакви изчисления, би било по-лесно да използваме, като промелива $age, отколкото всеки път да пишем $_POST["age"].

За целта променяме тази част на скрипта по следния начин:

if(!empty($_POST)) { $name=$_POST["name"]; $age=$_POST["age"]; $mail=$_POST["mail"]; echo "Вие се казвате: $name<br />"; echo "Вие се казвате: $age<br />"; echo "Вие се казвате: $mail<br />"; }

Така променливите се пишат по-лесно, но ако формата съдържа много полета ще си усложним ненужно живота с присвояването. За да се справим с този проблем, ще използваме удобния foreach цикъл, за да обходим $_POST масива. Променяме горната част по следния начин:

if(!empty($_POST)) { foreach($_POST as $key=>$value) { $$key=$value; } echo "Вие се казвате: $name<br />"; echo "Вие се казвате: $age<br />"; echo "Вие се казвате: $mail<br />";

След като заредим страницата index.php, с радост ще установим, че всичко работи. Какво направихме всъщност?

При обхождането на $_POST масива с помощта на foreach, променливите $key и $value взимат стойностите съответно на името и стойността, които сме изпратили с html формата. Чрез $$key създаваме променлива със същото име, като това изпратено от формата - $name, $age и $mail и им присвояваме автоматично съответните стойности.

По този начин, можем с 3 реда код да създадем голям брой променливи, изпратени от дълга форма.

Важно! Копирането на статията е разрешено само при добавяне на връзка(линк) към източника, в случая computri.net.

Добавете следния код към края на копираната статия:Източник: <a href="http://computri.net/полезно-поддръжка-компютри/статии-49/новини-55/статия-2430/" title="сервиз компютри">сервиз компютри</a>

















ilko mini0 ddr8400 cav100h db946a kabel np300 nc10 2777 hp4dv5 vide 2310 tc4400 tally soe a52 vmv160sgr12gm dmimenutac надежда 5730z 8020d satelitepproe4200 dellsinspironi1545 6720s x51rl jakkzaszahranva6totobyst 9414 cq62 bga1168 k53u nlink b141ew05 hporam 484170 bcm94322hm8l b96sq linksysypap2dvoip p9600 pk070005o00 ramkspametp2 5710z amh2a 13r1014 ltestu lampi d270 4100 звукова платка 5745 qdc e6500 dc020 5738 u31 7tests сваляне драйвер nvidiatgeforcetfxe5600 portreplicator nj65 462 x200akeyboard 1024mbsddri400mhzcram trvelmate bcm94322 ddr0400 2530 r011 pentium 41w1 1024mbeddrb400mhzaram ar9280 dc101228lsn2 aut qosmio hp6730b nvidia geforce fx go 5600 hp620 satelitepro4200series teight linksysspap2mvoip 5336 lp141x14 dockinf 4965agn 1015bx 41w1121 noard linksys b570 39t0071 z53s lenovor61e n6000 pa35160e emachines 8930g x80l v3 p9700 vcetka vpceb4j1e qiw69 w15a r50e panti speaker processor k50ij nc6220 msi atestu ednosdve l505 extensa acre 2634 m800 h710 nvidiavgeforcetfxe x551 vaio 8600 x200 ln91225 zarqdni dc020010l10 b140rw01 webesite acer5720 vayo k51ac thinkpad h54 ex720 v072078bs2 x200i downloadrdriver pc9b6004mwfbnc ednokdve w510 acerlaspire claa154wa01 lkfu001k 5736 m9410 4559nr39l02 n200 jaklzanzahranva6totouystroistvo 662 2410 hp6ram hperam 633 gigabyte 80gb dano delluinspironr1545 f5sl linksysrpap2mvoip doduo toshiba claa 1024mbuddrt400mhzhram c700 hpmdv5 fsnamilo 4444 3r305 ltd141ecmb r36lc050 x2001keypad dvb e5540 6017b0087401 svar panel x101 lp154wa01 ltn121 linksys8pap2 y500 nc8000 sp2504c l09s6y02 hub z60m asus 2.5 hdd ide sateliteuprot4200rseries xtestk m51s s10 linksysmpap2evoip x54h claa154wb03a motherboard w500 satelitempros4200hseries amzhu00040 ultrabaybslim 1558 g70 compag0presarios1255 linksysppap2 tj65 kotl x200vkeyboard compagspresarioa1255 едно 1024mbsddrp400mhz cr620 a900 hlndd0bdalc020130605 pi2540 web7site сервзи linksys6pap2bvoip 70906 l10 station capasi сервзи компютри обеля 41w1478 dv2500 ramdvpametmi nf61s yuj 2548 hprdv5 nw8240 6555b pc3200cl25 t5450 sxdq vga 478 121 pi2512 mp20 120w m1437g 1681 edno9dve 570 ktc lp154wp1 compagapresariob1255 klaviatura nvidiaageforcetfxe5600 5970g 2510p cs21 dellisiri 5349 aepe1e00010 l550 webcsite x200b pro72 t7200 link acr d260a lp154wxr4 hpvram 90200854 116 42w2960 te11hc acer aspire one 532h-2dd 42w3769 linksys0pap2 x550 nvidiatgeforcetfxegoc5600 b116xw03 dvd 4520 fujitsu p5we0 v6000 e8110 pro asrok ptests 2045s1 x200ekeypad ddr1 2400 2986 x200nkeypad ada3800 nokia v128862as2 t570 panda e5400 5920 satelite pro 4200 series db25 94360