🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.php
Article #230466

Re: zmienne globalne JavaScript inicjowane przez PHP

#230466
From: PawelS cbrbob(at)wbcd(dot)pl
Date: Sat, 12 Jul 2014 23:12
34 lines
3175 bytes
jivanmukta@poczta.onet.pl pisze:
> Uczę się tworzyć dynamiczne witryny internetowe przy pomocy PHP5/MySQL/HTML/CSS/JavaScript/XML. Piszę pierwszą witrynę w CodeIgniterze.
> 
> Na stronie mam duży formularz. W zależności od wyboru na dwóch drop-down listach zmienia się widoczność pól formularza. Drop-down listy i niektóre inne pola wypełniane są danymi z bazy. Wybór z drop-down listy jest obsługiwany w widoku tak:
> 
> echo form_dropdown('property_estate_type_id', $estateTypes, null, ' onchange="showPropertyRows();" onkeyup="showPropertyRows();" onkeydown="showPropertyRows();" ');
> 
> Aby działała funkcja showPropertyRows() potrzebne są zmienne JavaScript :
> 
> <script type="text/javascript">
> var furnitureTypes = <?php echo $furnitureTypes; ?>;	// słownik dla umeblowania
> var units = <?php echo $units; ?>;	// słownik jednostek
> var unitNames = <?php echo $unitNames; ?>;	// słownik nazw jednostek
> var offerTypes = <?php echo $offerTypes; ?>;	// słownik dla typów ofert
> var currencies = <?php echo $currencies; ?>;	// słownik dla walut
> var estateTypesVisibility = <?php echo $estateTypesVisibility; ?>;
> var priceFor = <?php echo $priceFor; ?>;
> var offerTypesVisibility = <?php echo $offerTypesVisibility; ?>;
> var priceForArray = <?php echo $priceForArray; ?>;	// kolejność wartości taka jak w priceFor
> var vulgarWords = <?php echo $vulgarWords; ?>;	// słowa wulgarne
> </script>
[...]
> Nie podoba mi się użycie zmiennych globalnych JavaScript i tworzenie kodu JavaScript w kontrolerze.
> Czy da się to zrobić lepiej? Byłbym wdzięczny za pomysły.
Gwoli ścisłości inicjacji zmiennych nie postrzegałbym jako kod.
Nie da się ukryć, że head ... head i w środku script ... script
z definicją zmiennych javascript nie jest zbyt pięknym rozwiązaniem.
W zależności od preferencji możesz spróbować:
1. onload: wykonać z javascript request http i dostać dane w np: json,
2. w dowolnym tagu we właściwości np: "data-source" umieścić dane,
3. w ukrytym formularzu umieścić dane i odczytać je w javascript
Nie wiem czy da się to elegancko zrealizować,
w końcu to dwa różne języki oraz różne warstwy
zastosowania, przeznaczenie i możliwości.
Technical Details
Message-ID: <lpsfc7$65n$1@node1.news.atman.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
References: <21ac89c2-5543-4f9c-a134-a7e5ce36ba8a@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: "PawelS cbrbob(at)wbcd(dot)pl" <fake@email.org>
Newsgroups: pl.comp.lang.php
Subject: Re: zmienne globalne JavaScript inicjowane przez PHP
Date: Sun, 13 Jul 2014 01:12:06 +0200
Organization: ATMAN - ATM S.A.
Lines: 34
Message-ID: <lpsfc7$65n$1@node1.news.atman.pl>
References: <21ac89c2-5543-4f9c-a134-a7e5ce36ba8a@googlegroups.com>
NNTP-Posting-Host: host-89-231-96-70.warszawa.mm.pl
Mime-Version: 1.0
X-Trace: node1.news.atman.pl 1405206727 6327 89.231.96.70 (12 Jul 2014 23:12:07 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Sat, 12 Jul 2014 23:12:07 +0000 (UTC)
User-Agent: Thunderbird 2.0.0.24 (X11/20110622)
In-Reply-To: <21ac89c2-5543-4f9c-a134-a7e5ce36ba8a@googlegroups.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit