Article View: pl.comp.lang.php
Article #230466Re: zmienne globalne JavaScript inicjowane przez PHP
From: PawelS cbrbob(at)wbcd(dot)pl
Date: Sat, 12 Jul 2014 23:12
Date: Sat, 12 Jul 2014 23:12
34 lines
3175 bytes
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-mailReferences:
<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