V rámci tohto projektu PHP , budeme vytvárať žiadosť o prieskum verejnej mienky.
Prieskum verejnej mienky bude pozostávať z 3 hlavných zložiek;
Predný radič - toto je indexová stránka, ktorá určí HTML kód, ktorý sa má načítať. To zabezpečí, že naša aplikácia bude mať jediný vstupný bod. Získate tak väčšiu kontrolu nad aplikáciou.
Business Logic - bude obsahovať kód PHP pre interakciu s databázou. To nám umožní oddeliť obchodnú logiku od prezentácie, čo umožní ľahkú údržbu našej aplikácie
Zobrazenia - bude obsahovať HTML kód. Budeme mať dve stránky, konkrétne;
- Opinion.html.php - bude obsahovať HTML kód s otázkou a možnosťami
- results.html.php - bude obsahovať HTML kód, ktorý zobrazuje výsledky prieskumu verejnej mienky
Vytvorené predpoklady
Prieskum verejnej mienky položí otázku -
Aká je tvoja obľúbená knižnica JavaScript?
Odpovede by boli
- JQuery
- MooTools
- Knižnica YUI
- Žiara
Tu sú kroky na vytvorenie aplikácie -
Krok 1) Pripojenie k databáze
Táto časť predpokladá znalosti MySQL a spôsobu jeho správy. Ak nie ste oboznámení s týmito MySQL, pozrite si našu sekciu SQL tutoriálov.
Naša aplikácia bude mať jednu tabuľku iba s 3 poľami, konkrétne;
- id - automaticky generovať číslo ako primárny kľúč
- výber - číslo predstavujúce kandidáta na prezidenta
- ts - časová pečiatka hlasovania
Skript nižšie vytvára našu tabuľku js_libraries.
Krok 2) Kódovanie našej aplikácie
Poďme teraz vytvoriť našu vrstvu obchodnej logiky, ktorá bude spracovávať pripojenie k databáze. 'Opinion_poll_model.php'
db_handle = mysqli_connect($this->host, $this->uid, $this->pwd); //connect to MySQL serverif (!$this->db_handle) die("Unable to connect to MySQL: " . mysqli_error());if (!mysqli_select_db($this->db_handle,$this->db)) die("Unable to select database: " . mysqli_error());}private function execute_query($sql_stmt) {$result = mysqli_query($db_handle,$sql_stmt); //execute SQL statementreturn !$result ? FALSE : TRUE;}public function select($sql_stmt) {$result = mysqli_query($db_handle,$sql_stmt);if (!$result) die("Database access failed: " . mysqli_error());$rows = mysqli_num_rows($result);$data = array();if ($rows) {while ($row = mysqli_fetch_array($result)) {$data = $row;}}return $data;}public function insert($sql_stmt) {return $this->execute_query($sql_stmt);}public function __destruct(){mysqli_close($this->db_handle);}}?>
TU,
- „Public function __construct ()“ je metóda konštruktora triedy, ktorá sa používa na nadviazanie pripojenia k databáze
- „Verejná funkcia execute_query (...)“ je metóda na vykonávanie dotazov, ako sú vloženie, aktualizácia a odstránenie
- „Výber verejnej funkcie“ je metóda na získanie údajov z databázy a vrátenie číselného poľa.
- „Verejná funkcia vložiť (...)“ je metóda vloženia, ktorá volá metódu execute_query.
- “Public function __destruct ()” je destruktor triedy, ktorý uzatvára pripojenie k databáze.
Vytvorme teraz predný radič index.php
alert('You did not vote!');";}if (count($_POST) > 1) {$ts = date("Y-m-d H:i:s");$option = $_POST['vote'][0];$sql_stmt = "INSERT INTO js_libraries (`choice`,`ts`) VALUES ($option,'$ts')";$model->insert($sql_stmt);$sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries;";$choices_count = $model->select($sql_stmt);$libraries = array("", "JQuery", "MooTools", "YUI Library", "Glow");$table_rows = '';for ($i = 1; $i < 5; $i++) {$sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries WHERE choice = $i;";$result = $model->select($sql_stmt);$table_rows .= "";}require 'results.html.php';exit;}require 'opinion.html.php';?> " . $ libraries [$i] . " Got: " . $result[0] . " votes
TU,
- “Require 'Opinion_poll_model.php';“ načíta triedu obchodnej logiky
- „$ Model = new Opinion_poll_model ();“ vytvára inštanciu triedy obchodnej logiky
- „If (count ($ _ POST) == 1) ...“ vykoná overenie údajov a použije JavaScript na zobrazenie okna so správou, ak nebol zvolený kandidát.
- „If (count ($ _ POST)> 1) ...“ skontroluje, či bolo vybrané hlasovanie, spočítaním počtu položiek v poli $ _POST. Ak nebola vybratá žiadna položka, $ _POST bude obsahovať iba odoslanú položku. Ak bol vybraný kandidát, pole $ _POST bude obsahovať dva prvky, položku odoslať a hlasovať. Tento kód sa tiež používa na vloženie nového záznamu hlasovania a následné zobrazenie stránky s výsledkami
- "východ;" sa používa na ukončenie vykonávania skriptu po zobrazení výsledkov tak, aby sa formulár verejnej mienky nezobrazil.
- „Require 'Opinion.html.php';“ zobrazí formulár hlasovania, ak nebolo nič vybrané.
Poďme teraz vytvoriť pohľady. Opinion.html.php
JavaScript Libraries - Opinion Poll JavaScript Libraries - Opinion Poll
What is your favorite JavaScript?
results.html.php
JavaScript Libraries Poll Results Opinion Poll Results
What is your favorite JavaScript Library?
people have thus far taken part in this poll:
Krok 3) Testovanie našej aplikácie
Za predpokladu, že ste súbory uložili do priečinka Opinpoll, prejdite na adresu URL http: // localhost / OpinionPoll /
Ak kliknete na tlačidlo Ok bez výberu knižnice JS, zobrazí sa nasledujúce okno so správou.
Vyberte knižnicu JS a potom kliknite na tlačidlo OK. Zobrazí sa stránka s výsledkami podobná stránke uvedenej nižšie.
Zhrnutie
- Dobrým postupom pri navrhovaní aplikácií je rozdelenie vašej aplikácie na obchodnú logiku
- JavaScript je užitočný na vykonávanie validácie na strane klienta
- Je dobrým programovacím postupom používať súbor.html.php pre súbory, ktoré obsahujú kódy HTML aj PHP
- Aplikácia prieskumu verejnej mienky demonštruje, ako možno poznatky získané v predchádzajúcich lekciách spojiť pri vývoji fungujúcej aplikácie s koncovým bodom databázy.