Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: array i XHTML(HTML)
Forum PHP.pl > Forum > PHP
wallace
mam formularz, a w nim takie coś:

Kod
<input name="tablica[klucz]" id="tablica[klucz]" type="text" />


nastepnie przesylam go, i wykonywany jest taki kod:

[php:1:ef8c841b08]<?php
echo $_POST['tablica']['klucz'];
?>[/php:1:ef8c841b08]

i oczywiscie wszystko działa, natomiast z manuala
http://www.php.net/manual/pl/language.types.array.php
w akapicie "Co wolno, a czego nie w tablicach?"
wynika jasno i wyraznie, że konstrukcja

tablica[klucz]

nie jest poprawna.
I moje pytanie, czy to odnosi się też do formularzy w XHTML'u (HTML'u) ?
hmmm ... chyba nie, w koncu do tego potrzebna inna specyfikacja. Niestety na W3C znalazłem coś takiego, odnośnie atrybutów id i name tagu input:

Cytat
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").


Wynika z tego, że tego typu nazwy zmiennej nie są zgodne ze specyfikacją.

Zastanowilo mnie to dlatego że początkowo użyłem w tagu INPUT nazwy zmiennej

tablica['klucz']

i okazało się, że kluczem tablicy tablica w odwołaniu do zmniennej zawartej w powyższym kodzie jest nie klucz tylko 'klucz', a wiec kod musiałby wyglądać tak:

[php:1:ef8c841b08]<?php
echo $_POST['tablica']["'klucz'"];
?>[/php:1:ef8c841b08]

Co wy o tym myślicie?
hubertsk
witaj.
w manualu php napisali ze skladnia $tablica[klucz] jest nieprawidlowa, bo ciag znakow -> klucz <- nie jest traktowany jako string, dla php string to cos, co znajduje się wewwnątrz cuczysłowó.
- pojedyńczych ('string'), wtedy, jest interprwtowany doslownie
- podwójnych ("strong", wtedy następue tzw interpolacja zmiennych (gdzieś to przeczytałem 8) ) , tzn zmnienne które są w takim cudzysłowie, zamieniane są na ich wartości.

jeżeli chodzi o HTML, to tam coś, co wpiszesz pomiędzy '[' i ']' jest jakby automatycznie traktowane jako string, tak więc jak wpiszesz tablica['klucz'] to jak się już zorientowałes, kluczem będzie ->'klucz'<- a nie ->klucz<-
to chyba bylo by wszystko.

jeżeli popełniłem jakis błąd, to wybaczcie, ale to mój pierwszy post na tym forum. smile.gif
spenalzo
Sam sobie odpowiedziałeś winksmiley.jpg
W HTML poprawne jest chyba bez 'apostrofów' ... Tym bardziej, że odczyt w php jest udziwniony.
Cudi
Cytat
witaj.
w manualu php napisali ze skladnia $tablica[klucz] jest nieprawidlowa, bo ciag znakow -> klucz <- nie jest traktowany jako string, dla php string to cos, co znajduje się wewwnątrz cuczysłowó.
(...)
jeżeli popełniłem jakis błąd, to wybaczcie, ale to mój pierwszy post na tym forum.  :)

Masz racje, php potraktuje klucz nie zamknięty cudzyłowami/apostrafami jaką stałą. Jednak jeśli nie będzie zdefiniowanej stałej o tej nazwe php potraktuje ten ciąg znaków jako string, i wyrzuci notice'a.
Ps.
Witamy na forum smile.gif
hubertsk
dokladnie to chcialem napisac..
hehe smile.gif
wallace
jaaaa ... tego się nie spodziewałem, że ktoś jeszcze zajrzy do mojego posta po takim czasie odsyłania w kąt ;-) , nie mówiąc o odpowiedzi snitch.gif
dzieki :-)
pozdrawiam :-)
DeyV
Ale sie nam ludzie rozbestwili winksmiley.jpg Czas odpowiedzi - 10 dni uznają za odstawienie w kąt... I pomyśleć, że na niektórych forach/listach byłoby to uznane za całkiem dobry czas biggrin.gif
Cudi
Ale przy średniej tego forum 10 dni to naprawde długi okres, do niektórych postów po 5 minutach jest kilka odpowiedzi smile.gif I to pewnie przynosi temu forum coraz większą popularność smile.gif
wallace
wlasnie ;-) jak to 10 dni musialo wplynac na moja psychike ... porzucony, niechiany ;-) hyhy .. oke ... koniec ... bo sie bardzo OT robi :-)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.