PHP og HTML samhandle mye: PHP kan generere HTML-og HTML kan sende informasjon til PHP. Før du leser disse spørsmål, er det viktig at du lære å hente variabler fra eksterne kilder. Den manuelle side på dette emnet inneholder mange eksempler som godt.
Hva koding/dekoding trenger jeg når jeg passerer en verdi gjennom en form/URL?
Det er flere stadier for hvilken koding som er viktig., Forutsatt at du har en streng $data, som inneholder strengen du ønsker å formidle i en ikke-kodet måte, disse er de relevante faser:
-
HTML-tolkning. For å angi en tilfeldig streng, må du ta det i doble anførselstegn, og htmlspecialchars() hele verdien.
-
URL: EN URL-adresse består av flere deler. Hvis du vil at dataene skal tolkes som ett element, må du kode det med urlencode().,
Eksempel #1 En skjult HTML-element
– >
<?php
echo '<input type="hidden" value="' . htmlspecialchars($data) . '" />'."\n";
?>
Merk: Det er galt å urlencode() $data, fordi det er den nettlesere ansvar for å urlencode() data. Alle populære nettlesere gjør det riktig. Vær oppmerksom på at dette vil skje uavhengig av metode (dvs., FÅ eller POST). Du vil bare se dette i tilfelle FÅ forespørsel om, fordi POST-forespørsler er vanligvis skjult.,
Merk: dataene som vises i nettleseren som du vil, fordi leseren skal tolke HTML rømt symboler. Ved å sende inn, enten via GET eller POST, vil data bli urlencoded av nettleseren for å overføre, og direkte urldecoded med PHP. Så til slutt, du trenger ikke å gjøre noen urlencoding/urldecoding deg selv, alt er håndtert ‘automagisk’.,
Eksempel #3 I en URL –
– >
<?php
echo '<a href="' . htmlspecialchars("/nextpage.php?stage=23&data=" .
urlencode($data)) . '">'."\n";
?>
Merk: du faktisk er falsk en HTML-GET-forespørsel, derfor er det nødvendig å manuelt urlencode() de data.
Merk: Du må htmlspecialchars() hele URL-en, fordi den URL oppstår som verdien av en HTML-attributtet. I dette tilfellet, vil nettleseren første fn-htmlspecialchars() verdien, og deretter passere URL-en på. PHP vil forstå riktig URL-adresse, fordi du urlencode()d-data., Du vil legge merke til at
&
i URL-en er erstattet med&
. Selv om de fleste nettlesere vil gjenopprette hvis du glemmer dette, dette er ikke alltid mulig. Så selv om NETTADRESSEN er ikke dynamisk, du trenger for å htmlspecialchars() NETTADRESSEN.
jeg prøver å bruke en <input type=»image»> – tag-en, men den $foo.x og $foo.y-variablene er ikke tilgjengelig. $_GET er ikke eksisterende heller. Hvor er de?,
Når du sender et skjema, er det mulig å bruke et bilde i stedet for den vanlige send-knappen med en tag som:
– >
<input type="image" src="https://www.php.net/manual/en/faq.html.phpimage.gif" name="foo" />
Når brukeren klikker et sted på bildet, den medfølgende skjema vil bli overført til serveren med ytterligere to variabler: foo.x og foo.y.
Fordi foo.x og foo.y ville gjøre ugyldig variabel navn i PHP, de er ‘automagisk’ konvertert til foo_x og foo_y. Det er perioder erstattes med understrekning., Så, du vil få tilgang til disse variablene som alle andre som er beskrevet i avsnittet om gjenoppretting av variabler fra eksterne kilder. For eksempel, $_GET.
Merk:
Mellomrom på forespørsel variabel navn er konvertert til understrekninger.
Hvordan lager jeg rekker i en HTML <form>?,
for Å få din <form> resultat sendt som en matrise til din PHP-skript, kan du navnet <input>, <velg> eller <textarea> – elementer som dette:
– >
<input name="MyArray" /><input name="MyArray" /><input name="MyArray" /><input name="MyArray" />
legg Merke til at plassen parentes etter navnet på variabelen, det er det som gjør det til en matrise., Du kan gruppere elementer i ulike matriser ved å tilordne det samme navnet til ulike elementer:
<input name="MyArray" /><input name="MyArray" /><input name="MyOtherArray" /><input name="MyOtherArray" />
Dette gir to matriser, Min_tabell og MyOtherArray, som blir sendt til PHP-skript. Det er også mulig å tilordne spesifikke taster på matriser:
<input name="AnotherArray" /><input name="AnotherArray" /><input name="AnotherArray" /><input name="AnotherArray" />
Den AnotherArray tabellen nå inneholder tastene for 0, 1, e-post og telefon.
Merk:
Angi array tastene er valgfritt i HTML., Hvis du ikke angir tastene, matrisen blir fylt i den rekkefølgen som elementene vises i form. Vårt første eksempel vil inneholde tastene for 0, 1, 2 og 3.
Se også Matrise Funksjoner og Variabler Fra Eksterne Kilder.
Hvordan kan jeg få alle resultatene fra en velge flere HTML-koder?
velge flere tag i HTML-konstruksjon tillater brukere å velge flere elementer på en liste. Disse elementene sendes deretter til handling handler for skjemaet. Problemet er at de alle gikk med i samme widget navn. I. e.,
– >
<select name="var" multiple="yes">
Hvert valgte alternativ vil ankomme handlingen handler som:
var=option1var=option2var=option3
Hvert alternativ vil overskrive innholdet i den forrige $var variabel. Løsningen er å bruke PHP «matrise fra element» – funksjonen. Bør følgende brukes:
<select name="var" multiple="yes">
Dette forteller PHP til å behandle $var som en matrise og hvert oppdrag til en verdi var å legger til et element på tabellen. Det første elementet blir $var, den neste $var, etc., Antall () – funksjonen kan brukes til å bestemme hvor mange alternativer som ble valgt, og sorter () – funksjonen kan brukes til å sortere alternativ utvalg hvis det er nødvendig.
vær Oppmerksom på at hvis du bruker JavaScript på element navn kan føre til problemer når du prøver å referere til element etter navn. Bruk det numeriske skjemaet element-ID i stedet, eller legge variabelen navnet i enkle anførselstegn, og bruke det som indeksen til array-elementer, for eksempel:
– >
variable = document.forms.elements'];
Hvordan kan jeg sende en variabel fra Javascript PHP?,
Siden Javascript er (som regel) en klient-side-teknologi, og PHP er (som regel) en server-side-teknologi, og siden HTTP er en «statsløse» protokoll, de to språkene kan ikke direkte del variabler.
Det er imidlertid mulig å passere variabler mellom de to. En måte å oppnå dette på er å generere Javascript-kode med PHP, og har nettleseren oppdaterer seg selv, passerer bestemte variabler tilbake til PHP-skript. Eksemplet nedenfor viser nøyaktig hvordan du skal gjøre dette-det gjør at PHP-koden til å fange skjermen høyde og bredde, noe som er normalt bare mulig på klientsiden.,