![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 3 Dołączył: 7.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam problem nad którym siedzę już n-tą godzinę i nadal nie mogę rozgryźć. Kod nad jakim pracuje jest częścią sklepu internetowego, problem leży w koszyku. Tutaj jest fragment formularza (koszyk.php), którego używam do zmiany ilości zamówień przy danym produkcie. A tu fragment odpowiadający za zmianę tej wartości.
Pod zmienną "x" i zmienną typ_produkt kryje się produkt zapisywany w postaci np. 55-S-Red, tj. ID-rozmiar-kolor. Problem: Przy kolorze składającym się z dwóch części oddzielonych spacją, np. Soft Peach, kiedy próbuję zmienić ilość to zamiast zmiany wartość znika i mam pustego inputa. Myślałem na początku, iż post źle coś wysyłał (np. samo "Soft", co powodowałoby że miałbym produkt 55-S-Soft, zamiast 55-S-Soft Peach i było by wszystko jasne), jednak chyba tak nie jest. Próbowałem przepuszczać "name" inputa przez specjalną funkcję, która miała zamieniać spacje na specjalny kod, lub po prostu bawiłem się ze znakami ' i ". Nie działało. Zresztą zaraz potem wykonywał się kod i array_count_values wywalał mi błąd, iż musi dostać STRINGA, lub INTEGERA Nie mam pojęcia co jest nie tak. Może ktoś rzucić na to okiem? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
zamień spacje na podkreślenie. Do indexa w array możesz nawet sobie polskie znaki wstawić - bo teoretycznie można, tak samo ze spacjami. Ale jest to duże ryzyko i nie praktykuje się takich znaków w indexie tablicy. Nie krzycz. Podaj źródło, które nie zaleca, bo w Manualu nic na ten temat nie ma. Wracając do tematu. Miałeś jednak rację Cytat Już widać o co chodzi. Przy wysyłaniu POSTem spacja zmienia się na znak "_" (przynajmniej tak sądzę). Dlaczego tak się dzieje? Można temu jakoś zapobiec? Choć moje stwierdzenieCytat Przy wysyłaniu postem spacja pozostaje spacją! Problem leży gdzieś indziej. jest słuszne, to jednak odnosi się do wartości pola.Wytłumaczę na podstawie poniższego kodu: Zgodnie ze specyfikacją html, atrybut name elementu formuarza nie może posiadać spacji, znaków narodowych i znaków specjalnych (poza pewnymi wyjątkami). Spacja zostanie zamieniona na znak _, ale nie przez sam PHP, tylko przez silnik przeglądarki. Natomiast value elementu formularza może już być dowolny. Odpowiedź na drugie pytanie - nie można temu zapobiec, ponieważ tak po prostu jest. Wniosek: TRZEBA ZROBIĆ INACZEJ! @marins: Połowicznie miałeś rację, ale nie chodzi o tablicę PHP-owską, tylko o tablicę DOM elementów formularza. Zwracam honor i obiecuję, że następnym razem lepiej się będę przyglądał (IMG:style_emoticons/default/wstydnis.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 13:38 |