Vormiväljade loomine ja eemaldamine (jQuery) Looge ülidünaamilisi kujundeid rakendusega VectorScribe v2. Standardvormide teisendamine dünaamilisteks vormideks

Tänapäeval on vormid kasutajate veebirakendustega suhtlemiseks üks olulisemaid tööriistu. Vormid võimaldavad korraldada tõhus juhtimine teavet saidi kohta, saidi enda olekut, osutada klientidele teenuseid, edastada teavet teistele kasutajatele, pakkuda juurdepääsu privaatsele jaotisele ja palju muud... Seetõttu on täiesti loomulik soov muuta vorme mugavamaks ja mugavamaks. kohandatud konkreetsete töö nüanssidega.

Sellise parenduse üheks suunaks võib olla interaktiivselt, lehte uuesti laadimata, andmesisestuse väljade arvu haldamise võimaluse rakendamine nii üles- kui allapoole. See võib olla väga mugav, kui peate rakenduste andmebaasi lisama mitte ühe, vaid mitu kirjet korraga; või kui ei ole ette teada sama tüüpi andmemaht, millest igaüks nõuab eraldi sisestusvälja (näiteks mitu telefoni või krediitkaardid kasutaja). Selles artiklis analüüsime ühte neist lihtsad teostused see võimalus läbi kasutades javascripti jQuery teegid.

Allosas saate alla laadida arhiivi koos näidetega, mida selles artiklis käsitletakse.

Vormile uue välja lisamine.

Loome uue vormivälja, kasutades meetodit .append():

$("selector" ) .append("string" ) ;

mis lisab määratud "selektoriga" elemendi sisse "stringi", kusjuures lisatud string järgneb olemasolevale sisule.

Kui arvestada konkreetne näide, siis võib see olla midagi sellist:

<div id = "lisa_välja_ala" > <div id="add1" class="add"> <silt > Väli nr 1</label> < "/> </div> </div>

Loome div-ploki ID-ga “add_field_area”, mille sisse lisame id-ga “add№” plokid, mis omakorda sisaldavad lisatud välja pealkirja ja sisestusvälja ennast. Loomulikult saate lisada elemendi ilma seda div märgendisse mähkimata, kuid just see struktuur on meile tulevikus väga kasulik, kui rakendame valitud välja eemaldamise võimaluse, kui kasutaja seda vajab.

Lisaks asetame selle välja allserva nupu “Lisa uus väli”, klõpsamisel peaks ilmuma üks uus teabe sisestamise väli. Välja loob onClick sündmus, kasutades funktsiooni addField, mis kutsutakse välja nupu klõpsamisel:

<div id = "lisa_välja_ala" > <div id="add1" class="add"> <silt > Väli nr 1</label> <sisendi tüüp = "tekst" width = "120" name = "val" id = "val" value = " !}"/> </div> <div onclick = "addField();" class="addbutton"> Lisa uus väli</div> </div>

Funktsiooni addField() saab rakendada järgmiselt:

< script type= "text/javascript" >funktsioon addField () ( var telnum = parseInt($("#add_field_area" ) .find ("div.add:last" ) .attr ("id" ) .slice (3 ) ) 1 ; $("div#add_field_area" ).append("

" ) ; }

Esiteks, nagu tavaliselt, lisame jQuery teegi ja seejärel deklareerime funktsiooni addField (). Funktsioon arvutab esmalt välja arvu, mis tuleb lisatud elemendile sisestada – selle numbri võrra kustutame hiljem mittevajalikud väljad. Seejärel lisab addField() lahtrisse div#add_field_area ploki div#add# koodi, mille sees on vormiväli, mille kood on täiesti sarnane ülaltoodud “Field #1” koodiga. Nüüd, kui klõpsate nupul "Lisa", näeme, kuidas uus väli koheselt ilmub.

Konkreetse vormivälja eemaldamine.

DOM-puu elementide eemaldamiseks võite kasutada meetodit remove().

$("valija" ) .remove () ;

mida rakendatakse elemendile määratud “selektoriga”. Eeldame, et vaikimisi peaks üks väli alati alles jääma, kõik täiendavad saab kustutada. Selleks lisame funktsioonis addField() meetodi .append() parameetrireale väljade kustutamise nupu koodi, millele vajutades kutsutakse välja funktsioon deleteField (id), kusjuures number kustutatavast väljast edastatakse funktsioonile.

funktsioon addField () ( var telnum = parseInt($("#add_field_area" ) .find ("div.add:last" ) .attr ("id" ) .slice (3 ) ) 1 ; $("div#add_field_area" ).append("
" ) ; }

Funktsioon deleteField() ise võib olla väga lihtne:

funktsioon deleteField (id) ( $("div#add" id) .remove () ; )

Tegelikult kõike. Nüüd, kui klõpsate valitud välja vastas olevat nuppu (punane rist), kaob see ja koos sellega salvestatud teave.

Andmetöötlus serveris (php).

Kui vorm sisaldab mitut välja sama tüüpi andmetega, siis tekib loomulikult küsimus andmete töötlemisest, näiteks enne andmebaasi saatmist. Ülaltoodud näites lahendatakse see probleem, määrates vormivälja jaoks atribuudi nimi parameetriga val. See tähendab, et pärast selle vormi andmete esitamist POST meetod, paigutatakse nende väljade väärtused massiivi $_POST['val'], mille elemente saab itereerida foreach silmus(...) (...), Näiteks:

foreach ($_POST [ "val" ] kui $value ) ( // sinu kood.... )

Või vajadusel "liimige" kõik nende sama tüüpi väljade andmed ühele reale, kasutades funktsiooni implode ():

$str = implode ("|" , $_POST [ "val" ] ) ;

Seejärel ühendatakse kõik välja väärtused, millel on nimi=”val”, „toru” eraldajaga stringiks.

Kuid see on serveripoolne töötlemine, mis muide on turvakaalutlustel eelistatavam. Kuid võivad tekkida asjaolud, mis sunnivad teid selliseid välju kliendi poolel töötlema: näiteks puudub juurdepääs serveri skriptidele (kasutatakse mingit vormi kaugtöötlejat) või te ei saa mingil põhjusel muuta serveri tööd. vormitöötleja teie serveris. Sel juhul võite ka kasutada javascripti keel, ja kuna me juba töötame jQuery teek- siis jätkame sellega tööd.

Andmetöötlus kliendi poolel.

Oletame, et meie ülesanne on ühendada kõik selle mitme välja andmed stringiks, millel on vertikaalne riba “|”. Tegelikult rakendatakse seda üsna lihtsalt.

Esiteks peame vormi ennast veidi muutma, nimelt lisama ühe peidetud välja:

<sisendi tüüp = "peidetud" name = "väärtused" id = "väärtused" value = " !}"/>

paneme ühele reale koondatud andmed sinna sisse ja saadame serverisse standardtöötluseks.

Järgmiseks peate veidi muutma mitut sisendvälja, mille kallal me eespool töötasime, nimelt: pane atribuudi nimi nummerdatud parameeter, samuti lisage sündmus onBlur=””, mis kutsub esile funktsiooni writeFieldsVlues().

<sisendi tüüp = "tekst" width = "120" name = "val1" id = "val" onblur = "writeFieldsVlues();" väärtus = " !}"/>

Funktsiooni writeFieldsVlues() saab deklareerida järgmiselt:

funktsioon writeFieldsVlues () ( var str = ; var tel = "" ; for (var i = 0 ; i< $("input#val" ) .length ; i ) { tel = $($("input#val" ) [ i] ) .val () ; if (tel !== "" ) { str.push ($($("input#val" ) [ i] ) .val () ) ; } } $("input#values" ) .val (str.join ("|" ) ) ; }

See tähendab, et toimub tsükkel läbi kõigi sisendelementide id=”val”, igaühest ekstraheeritakse atribuudi value=”” väärtus (mille sisestame väljale) ja kui see väärtus pole tühi, paneme see str-massiivis. Järgmisena kombineeritakse massiiv vertikaalse riba eraldajaga stringiks, kasutades meetodit .join() ja saadud string kirjutatakse peidetud sisend#väärtuste välja atribuudile value=””.

Toimingu lõpuleviimiseks tuleb funktsioonile deleteField () lisada ka selle funktsiooni kutse, nii et välja kustutamisel värskendatakse ka peidetud väljal olevat teavet:

funktsioon deleteField (id) ( $("div#add" id) .remove () ; writeFieldsVlues() ; )

Kõik. Nüüd, peale väärtuse sisestamist väljale ja sellelt fookuse eemaldamist, moodustatakse andmerida ja kirjutatakse see peidetud väljale, välja kustutamisel juhtub sama. Sel juhul kirjutatakse peidetud väljale ainult meie mitme välja mittetühjad väärtused. Nüüd saab selle peidetud välja andmed saata kaug- või kohalikus serveris teie tavatöötlejale töötlemiseks.

Laadi alla lingid.

Siit saate alla laadida artikliga kaasnevad materjalid.

Tunni eesmärk

Selles õpetuses õpime, kuidas luua Adobe Illustratoris abstraktset kaasaegset tausta, mis koosneb standardsetest vektorkujudest. Seejärel teisendame standardkujud dünaamilisteks, mis võimaldab meil nende parameetritega vabalt manipuleerida ja isegi muuta need muudeks objektideks, saades mõne sekundiga uue vektori töö. Kõik see sai võimalikuks tänu VectorScribe v2 uuele väljalasele.

Abstraktse tausta loomine standardkujudest

Samm 1

Selle õpetuse alustamiseks vaatame lühidalt, kuidas luua Adobe Illustratoris standardkujude abil abstraktset tausta. Looge ristküliku tööriista (M) abil ristkülik, mille suurus vastab tööalale, ja täitke see lineaarse gradiendiga, mis edastab valguse jaotuse meie stseenil.

Ellipsi tööriista (L) abil looge kaks ringi, mille keskpunktid langevad kokku.

2. samm

Valige mõlemad ringid, seejärel klõpsake Pathfinderi paneelil nuppu Minus Front.

Täitke saadud liittee lineaarse gradiendiga valgest helehallini.

Lisame kujundile uue täidise, klõpsates paneelil Välimus vastaval nupul.

Valige paneeli alumine täide, seejärel valige Efekt > Moonutamine ja teisendamine > Teisenda... ja määrake suvandi Scale väärtused.

Pöörake alumise täidise gradiendi suunda.

3. samm

Nüüd loome loodud abstraktsest objektist varjud. Joonistame uue ringi, mille asetame Liittee alla. Täitke see radiaalse gradiendiga, mis sisaldab valget ja kahte halli tooni.

Joonistage valge ring ja asetage see nii, nagu on näidatud alloleval joonisel.

Valige selles etapis loodud ringid ja seejärel valige Object > Blend > Make. Seejärel minge Object > Blend > Blend Options... ja määrake vajalik arv samme.

Seega oleme loonud rõnga sisse varju.

4. samm

Loome veel kaks ringi. Alumine on täidetud valgega ja ülemine on täidetud lineaarse gradiendiga, mis koosneb kahest halli varjundist. Ringide asukoht on näidatud alloleval joonisel (objektide nähtavus on selguse huvides välja lülitatud).

Loome nendest ringidest segaobjekti, kasutades eelmises etapis näidatud meetodit.

Sellest seguobjektist saab peagi rõnga välimine vari.

5. samm

Rühmitage mõlemad segaobjektid.

Määrake loodud rühma segamisrežiimiks läbipaistvuspaneelil Korruta. Varjud on nüüd läbipaistvad.

Rühmitame kõik objektid, välja arvatud muidugi taust. Nüüd saame luua lihtsa kompositsiooni, dubleerides algse kuju ja muutes uute elementide suurust. Sain seda, mida näete allpool.

Standardvormide teisendamine dünaamilisteks vormideks

6. samm

Standardvormide teisendamine dünaamilisteks on nüüd võimalik VectorScribe v2 plugina uue versiooni abil. Sellel on kujutuvastusfunktsioon, mis seda teisendust teostab. Võtame dünaamilise kujundi tööriista ja hõljutame kursorit ühe standardkujundi tee kohal.

Nagu näete, ilmus märkus, et pistikprogramm tundis vormi ära. Kui klõpsame vormil, teisendatakse see kohe dünaamiliseks vormiks. See tähendab, et saame juhtida selle parameetreid paneelil Dynamic Shapes ja isegi muuta see teiseks kujundiks.

7. samm

Samuti saame kõik olemasolevad kujundid dünaamilisteks teisendada, kui need on loomulikult õige kujuga. Selleks ava paneeli Dynamic Shapes rippmenüü ja vali Convert to Dynamic Shape.

Pistikprogramm ütleb meile, et 61 teed on teisendatud, klõpsake nuppu OK.

8. samm

Proovime muuta kõigi olemasolevate objektide kuju. Valige Dünaamiline hulknurk ja määrake külgede arv.

Nagu näete, olid kõik teisendused edukad, hoolimata sellest, et kasutasin tausta loomiseks erinevate omadustega objekte (mitme täidisega ja segatud objektid). Mõne sekundiga saame teistsuguse tausta, mis koosneb ümaratest ristkülikutest.

See näib olevat trikk, kuid see tõesti toimib!

9. samm

Kokkuvõtteks tahan öelda, et VectorScribe v2 suudab ära tunda ka ümarad nurgad ja muuta need dünaamilisteks. Looge ümardatud ristkülik kasutades ümardatud ristküliku tööriista.

Võtke dünaamiliste nurkade tööriist ja viige kursor ühte ümardatud nurkadest. Nagu näete, on ilmunud märkus, mis näitab, et tuvastamine on teostatud.

Pärast kujundil klõpsamist muudetakse nurk dünaamiliseks ja selle raadiust saab juhtida käepidet lohistades või paneelil Dynamic Corners.

Teadmiseks, need pole kõik pistikprogrammi praeguse versiooni täiustused. Lisaks uutele funktsioonidele saate kaks uhiuut tööriista, mille kohta saate teavet või lehte külastades

EPLANis on kahte tüüpi vorme, mis erinevad vormi atribuudi Töö vormiga:

  • Staatilised vormid: Nendel vormidel on võimalik saadaolev graafika aruande igal lehel sama ja sõelutud andmete rea kõrgus on konstantne.
  • Dünaamilised kujundid: Nendel vormidel on graafika, kui see on olemas, üles ehitatud dünaamiliselt ja sinna on võimalik lisada nn "dünaamilisi piirkondi". Joone kõrgust saab muuta kuju omaduse abil muutuvaks Joone kõrguse dünaamiline reguleerimine ja saate aruannete lehel kombineerida mitme funktsiooni aruandeid.

Järgmistes jaotistes selgitatakse üksikuid dünaamilisi piirkondi, mida saab dünaamilisele vormile lisada (menüüüksuste kaudu Sisesta > Dünaamiline piirkond > ... vormiredaktoris).
Kehtib kõikidele piirkondadele: Vormiredaktoris määratud piirkonna laiust ei võeta arvesse, analüüsitakse ainult kõrgust. Lisaks tuleb arvestada, et aruanne algab kohast, kus asub esimene sisestuspunkt; kui näiteks päis vormilt eemaldatakse ilma andmeala liigutamata, algab aruanne andmeala sisestuspunkti kohast.

Kasutage vormi atribuute Ridade arv ja Rea kõrgus, et määrata aruandeala maksimaalne suurus lehel: mõlemad väärtused korrutatakse, et leida aruandeala (nähtamatu) piiri väärtus ("mm"). mille see purustab. Piirijoon arvutatakse päise lõppu arvestades. Kui ridade arv = 20 ja joone kõrgus = 10 mm, katkeb aruanne kõrgusel 20 x 10 mm = 200 mm.

Kommentaar:

Iga dünaamiline piirkond saab vormis eksisteerida ainult üks kord, vastasel juhul kuvatakse teade ja teist piirkonda eiratakse.

Lehe päis

Aruande päist korratakse iga seadme puhul. Kui märkeruut Ühenda on märgitud (aadressil Seaded: Väljund lehekülgedel), siis kombineeritakse mitme funktsiooni aruanded aruandelehele ning päist korratakse lehe igas alguses ja enne järgmise funktsiooni sõelumist.

Tavaliselt kasutatakse päist, andmeala ja jalust ainult nende vormide puhul, millest koostatakse funktsioonidega seotud aruanded (nt klemmiribade ajakava). Ülevaadete jaoks, nagu näiteks toote spetsifikatsioonid, ei ole päis hädavajalik.

Kui vormi omadus Korrake uut veeru päist seatud, korratakse päist igas uues veerus. Kui see atribuut pole määratud, kuvatakse päis ainult esimeses veerus. Seejärel kuvatakse järgmistes veergudes rohkem andmeridasid, kui on määratud atribuudis Ridade arv.

päis

Vaikimisi korratakse iga aruandefunktsiooni päist, kuid antud ala kohta on võimalik aruannet käivitada veerupäisena, määrates atribuudi forms Korrake uut veerupäist.

Vormil on võimalik defineerida mitu päist, kui näiteks klemmliistude graafikus kuvatakse paigalduskohad, kus klemmliistud asuvad. Selleks valige vormi atribuut Looge esimese x sortimise atribuutide päised ja määrake põllu jaoks soovitud säte Sorteeri seaded dialoogiboksis Aruanded -<Имя проекта> (vahekaardil Mallid vastava atribuudi kaudu).

Kinnistu kaudu Ilma järgmise juurde minemata. päise rida Lisaks saate juhtida päise asukohta kujul: Kui see omadus on aktiveeritud, kuvatakse päis koos järgmise andmereaga. Kui see atribuut on keelatud, luuakse päise jaoks eraldi rida.

Kommentaar:

Kui soovite kuvada iga installi pealkirja, peate aruande sorteerima installide järgi. See on ainus viis tagada, et iga installi päist kuvatakse ainult üks kord.

Andmeala

Selles valdkonnas analüüsitakse andmeid. Kui vormil on mitu veergu ( Vormi atribuut Veergude arv ) ja ruut Ühenda on märgitud (dialoogiboks Seaded: Väljund lehekülgedel), kinnistu kaudu Iga seade algab uuest veerust saate määrata, kas iga analüüsitava funktsiooni jaoks on vaja alustada uut veergu või analüüsida andmeid kompaktselt üksteise all.

Andmeala jalus

See ala on päise "vastupidine ekvivalent", st see kuvatakse andmealal ja enne järgmist sõelutud funktsiooni. Siin saate näiteks määratleda rea, mis näitab visuaalselt funktsiooni aruande valmimist.

jalus

Jalust sõelutakse üks kord lehekülje kohta, st mitte iga funktsiooni jaoks. Mitmeveerulistes vormides asub see viimase veeru järel.

Kommentaar:

Dünaamilistes vormides olevad graafika ja kohatäidised paigutatakse ka dünaamilistest aladest väljapoole. Nagu staatilistel vormidel, renderdatakse need üks kord aruande lehekülje kohta, kusjuures kohatäide sõelutakse esimese päiseobjekti andmetega (näiteks lehe esimene terminaliriba).