Selles PHP projekti , me ei kavatse luua arvamusküsitlus taotluse.
Arvamusküsitlus koosneb kolmest põhikomponendist;
Eesmine kontroller - see on registrileht, mis määrab laaditava HTML-koodi. See tagab, et meie rakendusel on üks sisenemispunkt. See annab meile rakenduse üle suurema kontrolli.
Äriloogika - see sisaldab PHP-koodi andmebaasiga suhtlemiseks. See võimaldab meil eraldada äriloogika esitlusest, mis muudab meie rakenduse hooldamise lihtsaks
Vaated - see sisaldab HTML-koodi. Meil on kaks lehte, nimelt;
- arvamus.html.php - see sisaldab HTML-koodi koos küsimuse ja valikutega
- results.html.php - see sisaldab HTML-koodi, mis kuvab arvamusküsitluse tulemusi
Tehtud eeldused
Arvamusküsitlus esitab küsimuse -
Mis on teie lemmik JavaScripti raamatukogu?
Vastused oleksid
- JQuery
- MooTools
- YUI raamatukogu
- Kuma
Rakenduse loomiseks toimige järgmiselt.
1. samm) andmebaaside ühenduvus
Selles jaotises eeldatakse teadmisi MySQL-ist ja selle haldamisest. Kui te pole nende MySQL-iga tuttav, vaadake meie jaotist SQL-õpetused.
Meie rakendusel on ainult üks tabel, millel on 3 välja, nimelt;
- id - numbri automaatne genereerimine peamise võtmena
- valik - number, mis esindab presidendikandidaati
- ts - hääletuse ajatempel
Allolev skript loob meie tabeli js_libraries.
2. samm. Meie rakenduse kodeerimine
Loome nüüd oma äriloogika kihi, mis haldab andmebaasi ühenduvust. 'arvamus_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);}}?>
SIIN,
- “Public function __construct ()” on klassi konstruktori meetod, mida kasutatakse andmebaasi ühenduse loomiseks
- „Public function execute_query (…)” on meetod selliste päringute täitmiseks nagu sisestamine, värskendamine ja kustutamine
- „Public function select” on meetod andmebaasist andmete hankimiseks ja numbrilise massiivi tagastamiseks.
- “Public function insert (…)” on sisestamismeetod, mis kutsub meetodit execute_query.
- “Public function __destruct ()” on klassi hävitaja, mis sulgeb andmebaasi ühenduse.
Loome nüüd eesmise kontrolleri 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
SIIN,
- "Nõuda" arvamuse_küsitluse_model.php ";" laadib äriloogikaklassi
- "$ Model = new Opinion_poll_model ();" loob äriloogikaklassi eksemplari
- „If (count ($ _ POST) == 1)…” teostab andmete valideerimise ja kasutab JavaScripti abil sõnumikasti kuvamist, kui kandidaadi poolt pole hääletatud.
- „If (count ($ _ POST)> 1)…” kontrollib massi $ _POST üksuste arvu lugemisel, kas hääl on valitud. Kui ühtegi üksust pole valitud, sisaldab $ _POST ainult esitatavat üksust. Kui valitud on kandidaat, on massiivi $ _POST kahel elemendil - esitamise ja hääletamise element. Seda koodi kasutatakse ka uue hääletusrekordi sisestamiseks ja seejärel tulemuste lehe kuvamiseks
- "Väljumine" kasutatakse skripti täitmise lõpetamiseks pärast tulemuste kuvamist, nii et arvamusküsitluse vormi ei kuvata.
- „Nõuda arvamust.html.php”; ” kuvab arvamusküsitluse vormi, kui midagi pole valitud.
Loome nüüd vaated. arvamus.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:
3. samm. Meie rakenduse testimine
Eeldades, et olete failid arvamusküsitluste kausta salvestanud, sirvige URL-i http: // localhost / mielipidekontroll /
Kui klõpsate nuppu OK ilma JS-i teeki valimata, kuvatakse järgmine teatekast.
Valige JS-i teek, seejärel klõpsake nuppu OK. Saad tulemuste lehe, mis on sarnane allpool näidatuga.
Kokkuvõte
- Jagades oma rakenduse äriloogikaks, on juhtpuldi vaate kihid rakenduste kujundamise hea tava
- JavaScript on kasulik kliendipoolse valideerimise läbiviimiseks
- Hea programmeerimistava on kasutada faili.html.php failide jaoks, mis sisaldavad nii HTML- kui ka PHP-koode
- Arvamusküsitluste rakendus näitab, kuidas eelmistes õppetundides õpitud teadmisi saab kokku panna, et töötada välja toimiv rakendus koos andmebaasi taustaga.