[MUZYKA GRY] David J. MALAN: Witam. Weźmy na spacer po Problem Zestaw 8 Mashup, która będzie kwestionować was czerpać elementów do Google Maps z elementami z Google News i puree je razem do apletu internetowej, umożliwia użytkownikom wyszukiwanie mapa do wiadomości lokalnych do poszczególnych miast, miasta i kody pocztowe. Aby to zrobić, będziemy zintegrować niektóre HTML, CSS, PHP, SQL, JavaScript i technika Ogólnie wiadomo, Ajax w celu do stworzenia tego wciągające doświadczenie użytkownika. Niech najpierw dla siebie Google Maps. To, oczywiście, jest prawdopodobnie Znajomy interfejs. Ale okazuje się, że Google Maps stanowi również wniosek API-- programowanie interface-- poprzez które można wziąć elementy Google Maps i włączenie ich do własne aplikacje. Rzeczywiście w tym Proces, będziesz znaleźć kilka adresów URL szczególnie pomocne, że są wymienione w Specyfikacja Problem Zestaw 8, Pierwsze kroki to specjalnie Przewodnik lub przewodnik dla programisty Google Maps API w wersji 3 oraz w Google Maps API JavaScript Odniesienie v3, który jest nieco bardziej złożoną, aby przeczytać lecz w rzeczywistości ma wszystkie niższym poziomie Szczegółowe informacje dotyczące funkcji lub metod oraz obiekty i właściwości oraz wydarzenia rzeczywiście pochodzą z API, bardzo podobne w duchu do [niesłyszalne] stron. Teraz, jeśli przyjrzymy w Google News, będziesz może zobaczyć znajomy interfejs tutaj. Ale okazuje się, można także wyszukiwać Google News dla określonych regionów geograficznych poprzez parametr HTTP o nazwie geo. W rzeczywistości, jeśli powiększyć tu, zobaczysz, że Jestem na news.google.com/news/section?geo=02138. I rzeczywiście, jeśli powiększyć się, zobaczysz, że jestem patrząc na stronie z całą bandą poglądy na temat Cambridge, w stanie Massachusetts. Tymczasem, jeśli rzeczywiście zmienić Adres URL, aby nie być kod pocztowy tak, ale coś trochę bałaganu jak Cambridge, Massachusetts +, gdzie plusem jest sposób kodowania spacja w adresie URL i naciśnij klawisz Enter, zobaczysz, że rzeczywiście zobacz prawie taką samą wiadomość. Być może jest to trochę inaczej bo rzeczywiście w Cambridge ma wiele kodów pocztowych. Teraz jak mam wiedzieć, że i, w rzeczywistości, jak można w jakiś sposób tie miast i miasteczek do kodów pocztowych w przypadku I Aby zezwolić użytkownikowi patrzeć albo? Cóż, okazuje się, że jest strona tam nazywa geonames.org co Inicjatywa ma swobodnie dostępne w bazie wszystkim rodzaju informacji geograficznych, Nie tylko w USA, a także w innych krajach. W rzeczywistości, jeśli pójdę do tego adresu URL tutaj, co jest również wymieniony w podany problem Specyfikacja, zobaczysz go trzy wykaz całą masę zip z których każdy może być pobrane. W rzeczywistości, dla tego problemu ustawić masz zamiar pobrać us.zip. Teraz w tym pliku, to cała kilka danych w formacie tekstowym. Pliki są bardzo podobne do CSV-- formacie CSV file-- ale faktycznie korzysta zakładki wyznaczenie pola. Teraz, w międzyczasie, jeśli spojrzeć tutaj, w co już podkreślono, pola w tym pliku będą za takie rzeczy jak kody krajów, kody pocztowe, nazwy miejscowości, a następnie w jakiejś formie lub innych, państwa i powiatów, społeczności i wielu innych. W rzeczywistości, ja już mam pobrać ten plik z góry. Pozwólcie mi iść do przodu i otworzyć go here-- us.text-- i, rzeczywiście, będziesz zobaczyć, czy mogę przewinąć w dół do linii 16792 zobaczysz kilka rekordów do Cambridge, Massachusetts i jego różne kody pocztowe. Co tam można również zobaczyć to powiat, niektóre numery, które tak naprawdę nie rozumiem, ale także wszystkich sposobem na prawo, niektóre GPS coordinates-- długość i szerokość geograficzna. To jest wielki, ponieważ jeden z funkcje Google Maps API ma zdolność do wykrywania gdzie jesteś geograficznie w odniesieniu do współrzędnych GPS. Teraz zaczynają się dowiedzieć się, jak rozpoczęcie wiążąc te rzeczy razem. Daliśmy wam całe czek kodu dystrybucji, oraz bazy danych MySQL. W rzeczywistości, jeśli wyciągnąć phpMyAdmin konieczności już zaimportowane, jak szybko będzie, pset8.SQL, zobaczysz tabeli MySQL, że wygląda tak, pola ID, kraj kod, kod pocztowy, nazwa miejsca i więcej. Rodzaje tych wszystkich Kolumny I pochodzi po prostu czytając readme.text plik o podanej czy pole jest liczbą całkowitą lub varchar lub podobne. Dlatego stworzyliśmy tę tabelę dla wy i wam poleceń SQL wykonać, aby utworzyć, że Tabela w własnej bazy danych, ale faktycznie żadnych danych w tym jeszcze. Raczej będziesz musiał pobierz us.zip lub zip żadnego kraju tam plik z tego adresu URL. A potem będziesz musiał napisać skrypt z linii poleceń w PHP to otworzy się ten tekst plik, przejść przez wszystkie swoje linie, i dla każdego z te linie zrobić wstawkę się, że umieszcza tabelę w bazie danych MySQL. Tak więc na koniec tego procesu, będziesz zostały ostatecznie uruchomić ten skrypt tylko raz w teorii. W rzeczywistości prawdopodobnie będziesz uruchomienia go kilka razy starając się naprawić wiele błędów. Ostatecznie, będziesz mieć naprawdę duża baza danych z tysięcy i tysiące wierszy geograficznych. Wtedy masz zamiar umieścić ten import Skrypt bok raz to działa i baza danych jest ładny i prawidłowe, a następnie masz zamiar przenieść się do rzeczywistości realizacji samego mashup. Mashup będzie wyglądać Trochę coś takiego. Na mashup.cs50.net, że ma rozwiązanie pracowników że wygląda trochę coś takiego. Rzeczywiście, jeśli klikam na tej gazecie ikona na Cambridge, Massachusetts, zobaczysz przędzenia ikonę, a następnie na krótko uporządkowany, wypunktowanie artykułów związane z Cambridge, w stanie Massachusetts. Gdybym kliknij Charlestown, Massachusetts, Zobaczę sama dla tego miasta. A Gdybym kliknij Watertown, Massachusetts, nie może nie być każdy news z Watertown, więc można zobaczyć coś jak powolne dzień prasowej. Teraz, w międzyczasie, na górze po lewej stronie są niektóre znajome kontrole Google Maps aby można pomniejszyć, pan w górę, w dół, w lewo iw prawo, ale także pole wyszukiwania, które tam umieścić. Więc jeśli mogę szukać, szczerze mówiąc, jedynym kod pocztowy wiem, 90210, będziemy rzeczywiście zobaczyć Beverly Hills, Kalifornia. Po kliknięciu prowadzi mnie do Kalifornia i cała masa wieści o Beverly Hills. Zauważcie też, co się tam stało. Jeśli I szukaj czas na 02138 lub nawet Cambridge przecinek Massachusetts lub niektórych wariant, można uzyskać Trochę autouzupełniania rozwijana. Teraz to jest za pomocą wtyczki dla biblioteki o nazwie jQuery, i że plugin nazywa wpisywanie znaków z wyprzedzeniem. My po prostu przeczytać dokumentacja, Ściągnąłem plik js zintegrowane do kodu dystrybucji tak, aby was ostatecznie może napisać kod, który wypełnia tę rozwijane menu z auto pozycje lub sugestie auto. Teraz kod dystrybucji jednak, że otrzymaliście nie robi aż tak dużo. Otrzymasz Google Map osadzone, a masz kontroli lewym górnym, i masz pole wyszukiwania. Ale jeśli napiszę coś podobnego 02138, nie ma miejsca są jeszcze znaleźć. Tak, że będzie jednym z naszych celów tutaj. Co więcej, jeśli wziąć krok tyłu i spojrzeć na samej mapie, nie ma wiadomości w ogóle. Nawet jeśli klikam i przeciągnij, właściwie nie ma znaczników pojawiają się nowości, ponieważ to Wyzwaniem pozostaje dla Ciebie. Rzućmy okiem następnie na kod dystrybucji. Po pobraniu pset8.zip i rozpiął go do katalogu vhost w CS50 Appliance, zobaczysz je katalogi tutaj w środku. Bin-- który stoi na ogół na binarne wykonywalnego programs-- obejmuje, podobnie jak w pset7 niektóre PHP pliki, które obejmują, inne pliki następnie publicznego, który jest pliki, które muszą być dostępne publicznie aby użytkownik z poziomu przeglądarki. Rzućmy okiem na bin, a my będziemy zobaczyć, że to plik nie wzywał importu. Jeśli otworzymy to z gedit, zobaczymy że, niestety, nie ma zbyt wiele nie. Wszystko to jest, choć jest shebang na górze która określa, które interpreter-- w tym przypadku PHP-- powinny być wykorzystywane na wykonanie tego pliku. Ale gdzie jest napisane TODO jest, gdzie jesteś będzie trzeba napisać kod że prawdopodobnie wymaga config Plik, który znajduje się w katalogu includes jak już przedtem z plikami PHP. A potem będziesz trzeba jakoś otworzyć us.text które Cię zapewne zostały rozpakowane już. Następnie będziesz musiał przechodzenia do linii w tym pliku, być może przy użyciu niektórych funkcji zasugerowane w opisie. Następnie włóż każdy z tych wiersze do bazy danych MySQL przy użyciu funkcji zapytań, które my ponownie udostępnił with-- lub co najmniej wariant ich w functions.php, które zobaczymy za chwilę. Teraz zamknij import i wrócić do nasz katalog i tym razem pójść do obejmuje. A jeśli ja nie ls, zobaczysz trzy pliki dość podobne Problem Zestaw 7. I rzućmy okiem, Na przykład, na config.php. Tam, jest mniej linii niż wcześniej, i to Ten plik zawiera wydaje constans.php i functions.php. Używamy nieco inaczej Technika tym razem faktycznie określić, że pliki te są względne do bieżącego katalogu __ DIR__ Katalog ten stanowi co pliku config.php, jest sama w. Więc to jest bardziej wyraźny sposób określania jakie inne pliki, które chcesz wymagają. Teraz jeśli zamknę ten plik i otworzyć constans.php zamiast zobaczysz plik bardzo przypomina Zestaw do 7 na problem, a także, choć z innej bazy danych o nazwie pset8. Wreszcie w functions.php, zobaczymy tylko jedną funkcję tym razem o nazwie kwerendy. To jest prawie taki sam, z wyjątkiem załatwiamy Błędy tym razem trochę inaczej, ale to zastosowanie jest same jak w problemu zestaw siedmiu. Teraz wróćmy do naszego pset8 katalog, przejdź do publicznej wiadomości, a tam jeśli zrobić ls, zobaczysz this-- articles.php, index.html, search.php, i update.php-- wszystkie pliki. A potem czcionki css, img, a katalog js zupełnie jak pset7. Rzućmy okiem na index.html, który jest będzie bardzo punkt wejścia do smashup. Teraz w index.html, zobaczysz całe kilka elementów łączących w głowie, specjalnie dla bootstrap dla naszych własnych CSS, a następnie całą masę skrypcie Tagi dla rzeczy jak mapy, API Sam, specjalny marker z etykietą Narzędzie, że wymienione w specyfikacja jest dostępna dla Ciebie, Sam jQuery, bootstrap sama oraz inną biblioteką nazywa podkreślenia, które mówimy o w spec. Underscore.js jak jquery.js jest biblioteką JavaScript że ma całą masę funkcjonalności , że wiele osób w świecie życzenie istniały w samej JavaScript. Więc to wszystko jest całkiem popularne. Mamy również wspomnieć wpisywanie znaków z wyprzedzeniem która jest biblioteką nie, że rozwijane i autouzupełniania w końcu link do naszej własnej JavaScript. W tym samym czasie i może Na szczęście, ten mashup napędzana jest stosunkowo mała HTML tu, na dole. Zauważ, że mamy określony div w nasz organizm płynu klasy pojemnika. To, bootstrap na na dokumentacja, po prostu oznacza, że ​​ten dział będzie wypełnić rzutni lub oknie przeglądarki pełni. Tymczasem, poniżej mamy div który jest otwarty i natychmiast zamknięte z unikalnym ID mapy płótnie. To jest teraz z Google Dokumentacja mapy jego API, dzięki czemu po prostu trzeba ma pusty div do której wstrzyknąć, ostatecznie rzeczywistą Google Maps. Ale o tym za chwilę. Wreszcie, nie jest formą Wnętrze o których implementuje okno się tekst gorny lewy w naszym interfejs do wyszukiwania. Zauważ, że użyliśmy Trochę bootstrap tutaj too-- rzeczy jak Formularz-inline i forma grupa. Daliśmy byłego Unikalny identyfikator formularza. A potem, w końcu, tak naprawdę mają typ wejścia, które jest dość znane, którego identyfikator jest q. Tylko konwencja. Q za query-- może mieć nazywany niczego. A potem zastępczy, w międzyczasie, to miasto, województwo, i kod pocztowy, który można przypomnieć, widząc w naszym mashup demo wcześniej. Zamknijmy ten plik. Teraz spójrz na pliki PHP, które czekają a pliki JavaScript. W naszych plików PHP, mamy już wdrożone dla Ciebie, na przykład, aktualizacje. Update.php-- nie będziemy wydawać ogromne Czas na here-- w pigułce to, że nasz plik Kod JavaScript będzie kontaktować się za pośrednictwem AJAX, że Technika to asynchroniczny wbudowane w JavaScripcie te dni to pozwoli abyśmy zapytać update.php aby uzyskać więcej informacji. W szczególności, w każdej chwili użytkownik przeciągnie mapę lub przeprowadza wyszukiwanie, który skacze użytkownika do innej lokalizacji nasz kod JavaScript, jak to już wkrótce, jest zamiar zadzwonić update.php i poprosić o 10 lub więcej markerów w rzutni na podstawie od współrzędnych GPS od góry i od dołu rogi tej mapie. Możemy zaludnić mapę teraz użytkownik został przeniesiony do ekranu w celu zobaczyć 10 prawdopodobnie nowa markery do różnych miast. Tymczasem, plik ten jest ostatecznie zamierza wykonać zapytanie SQL przeciwko naszej bazie danych Tabela o nazwie miejsca, w którym powróci tych 10 lub mniej miejsc. Tymczasem w articles.php jest innym złożyć pisaliśmy w całości. Jest bardzo podobny w duchu Funkcja WYSZUKAJ Problem zestaw 7, w który skontaktował Yahoo Finance dla Ciebie. Ten plik kontaktów Google News dla Ciebie, ostatecznie chwytając odczytu maszynowego version-- w coś nazywa RSS format-- z nowości do Cambridge lub Beverly Hills lub cokolwiek miasto szukałeś na podstawie tego geoparameter. My analizować ten RSS, który jest po prostu rodzaj języka znaczników XML o nazwie, i wtedy rzeczywiście zwrócić go do przeglądarki i do kodu JavaScript, W szczególności, w formie zwany JSON, JavaScript Object Notation. Teraz zobaczysz w specification-- wskażemy ci w jaki sposób można rzeczywiście zobaczyć niektóre JSON nadchodzącym back-- że funkcja ta ostatecznie pozwala zapełnić te popup menu, tak że po kliknięciu na znacznik w mapie rzeczywiście zobaczyć całą masę kul, z których każda linki do artykułu. Teraz rzućmy okiem na jeden ostatni Plik PHP, który, na szczęście, nie mają wiele dzieje on-- po prostu dość duży TODO. Teraz ten plik oświadcza tablica o nazwie miejsca. A następnie ostatecznie wydruki że tablica w JSON format-- ładna, drukowanie tak, że rzeczy są łatwiejsze do debugowania. Niestety, w środkowa nie jest to zadanie, który wzywa do wyszukania baza miejsc pasujących geo HTTP parametrów. I rzeczywiście, to będzie być jednym z challenges-- do wdrożenia tej funkcji tutaj tak, że gdy kontakt ten plik URL jak wyszukiwania. php? geo = coś, Twój kod będzie ostatecznie powrócić do JSON Tablica wszystkich miejscach w tabeli bazy danych, która pasuje do tego wejścia. Więc jeśli użytkownik wpisze w Cambridge, plik o search.php powinien ostatecznie powrócić tablicy JSON dla wszystkich meczach Cambridge, który może być w stanie Massachusetts ale może być jeszcze nigdzie indziej. Wreszcie, rzućmy okiem na dwa Pliki, które są ultimately-- statyczne Twój plik CSS, a plik JavaScript. Jeśli pójdę do naszego katalogu, CSS, istnieje cała masa plików tam, ale większość z nich są biblioteki. Zamierzam przyjrzeć, specjalnie na styles.css, co jest nasze własne globalne CSS to będzie stylizować cały ten mashup. Zostawię go, aby przeczytać komentarze tutaj, ale w skrócie, to jest CSS, który sprawia, że ​​nasza mashup domyślnie po wyjęciu z pudełka, Wygląda dokładnie tak jak chcemy it-- z mapą widok portu napełniania i poszukiwania box się w lewym górnym rogu. Podjęliśmy również wolność stylizując że wpisywanie znaków z wyprzedzeniem listy rozwijanej Menu trochę jak również. Najważniejszym pliku Być może dla tego problemu ustawić Jest to ostatni, scripts.js. Wewnątrz katalogu JS jest jeszcze więcej plików. Wszystkie z nich są pliki biblioteki z wyjątkiem tego jednego, scripts.js. Jeśli otworzymy tę górę, weźmy nasze Ostateczna Wycieczka przez funkcje, które są zbudowane z tym dokumentem dla Ciebie i zwrócić uwagę do Todos które stoją przed nami. Na górze tego pliku są trzy zmienne globalne. Jeden na mapie, które zamierza odniesienie do naszej mapie Google. Możesz myśleć o tym rodzaj jako wskaźnik. Tymczasem mamy kolejna zmienna globalna nazywa informacji, które wydaje się być przechowywania wartości zwracanej rozmowy do nowego google.maps.InfoWindow. JavaScript obsługuje obiektów, które są bardzo podobne w duchu do poprzeczne. A co to za linia nasze cele robi tworzy nowe informacje Okno w pamięci, a następnie utrzymywanie wokół zadanej do niego w zmiennej o nazwie Info. A w między tymi, Tymczasem, jest to, co pojawia się być pusta JavaScript Tablica nazywa znaczniki. Wszystkie z tych ikon gazet, albo może wybrać inną ikonę całkowicie, będą przechowywane ostatecznie w tej tablicy tak, że można bardzo łatwo dodać do Mapa i usunąć je z mapy. Teraz przejdź na dół trochę i świst za pomocą kodu, który będzie realizowane tak szybko jak DOM lub dokumentu model obiektu lub Sama strona jest gotowa. Przypomnijmy, że tej składni tutaj po prostu określa że poniższy kod powinny być wykonywane tylko gdy przeglądarka zakończy loading wszystko. Najpierw zadeklarować cała masa stylów, która kończy się stylizując Mapa jak na spec. Następnie zadeklarować cała masa opcji, co jeszcze bardziej dostosować Google Mapa, że ​​jesteśmy o osadzić. Następnie używamy trochę kodu jQuery, co wynika w nieco bardziej szczegółowo w specyfikacji, aby pobrać ten element, map-canvas że tak identyfikowany. A potem ta linia tutaj jest co wydaje się nam magicznie mapa Google wewnątrz nasza aplikacja, przechowywania odniesienie do nich w tej zmiennej o nazwie mapie. Wreszcie, możemy zarejestrować się tutaj co nazywa słuchaczem. Pomyśl back-- sposób, sposób back-- do tygodnia zerowej w CS50 kiedy spojrzał na zarysowania i jego wsparcie poprzez spacer przez rzeczy zwanych imprezy i audycje. Nie może być stosowany to sam, ale to mechanizm, dzięki któremu Przeglądarka w tym przypadku mogą zwrócić naszą uwagę, gdy jest to gotowe by wykonać jakiś kod. W tym przypadku, to będzie słuchać do mapy na imprezę o nazwie bezczynny. Oznacza to, że przeglądarce zakończeniu ładowania mapy Google. W tym momencie funkcja nazywa Configure powinien ostatecznie wykonania. To funkcja, konfigurowanie zobaczymy, jest napisane przez nas. Teraz tutaj jest funkcja niestety, że jest tylko markerem TODO dodatek. Na spec. będziesz potrzebować do pisania kodu, które faktycznie dodaje marker-- czy to wygląda jak gazety, lub halsie kciuka, lub coś else-- na mapie Google. Tu jest teraz, że funkcja nazywa configure. Zostawię go do przeczytania przez to bardziej szczegółowo ale sobie sprawę, że możemy dodać bandą więcej Słuchaczy tak, że można wykonać kod przy użytkownik kliknie i wyciąga mapę. Mamy też tutaj, że kod inicjuje ten plugin wpisywanie znaków z wyprzedzeniem tak, że rozwijana Menu faktycznie działa. Skupmy się jednak na tak Kilka miejsc w niniejszym dokumencie. Konkretnie, to tutaj zrobić. Ja odroczyć do on-line dokumentacji i specyfikacji na jak wypełnić ten TODO. Ale w skrócie, to biblioteki wpisywanie znaków z wyprzedzeniem pozwala przejść w jakich jest powszechnie znane jako matrycę która ma pewne zmienne zastępcze bardzo w duchu podobnym do printf w%. * s. Jednak w tym przypadku, Szablon na spec umożliwia określenie co zmienne chcesz wstrzyknąć z danych, które pochodzą z powrotem z czymś takim jak PHP Pliki, które zostały napisane które emitują wyjście JSON. Teraz tu sobie sprawę, że jesteśmy nasłuchując wyborów wpisywanie znaków z wyprzedzeniem gdy użytkownik faktycznie prowadzi wyszukiwać i wybiera wartość. W ten sposób jesteśmy w rzeczywistości będziemy słuchać, że i wykonać jakiś kod w wyniku. Potem nadal skonfigurować mashup tylko trochę. I, ostatecznie, nazywamy aktualizacja ta funkcja. Aktualizuje ona znaczniki na ekranie. Więcej o tym za chwilę. Tymczasem, istnieje kilka małe funkcje w tutaj. Z których jeden jest hideInfo które po prostu zamyka InfoWindow. Inną funkcją jest tutaj co ostatecznie nie będzie zbyt długi, należy usunąć znaczniki. To będzie cofnąć, co Twoja funkcja Marker dodatek robi. A potem tu jest wyszukiwarka. A ten jest interesujący, ponieważ my Napisałem kod JavaScript, który jest Porozmawiamy z search.php na Serwer i wrócić na pewne postępy. Możesz, oczywiście, będzie nadal należy wdrożyć search.php, ale już wdrożone Kod JavaScript, który jest będzie obsługiwać faktycznie wykonujący wyszukuje z tego pola tekstowego. W szczególności, uprzedzenia że funkcja tutaj wyszukiwania, zwoła search.php metodą zwaną uzyskać JSON, który widzieliśmy w wykładzie. I tu składni jest trochę inaczej z wykładu, że używamy jQuery tak zwany interfejs obietnica. Więcej na ten temat w specyfikacji. To oznacza dla naszych cele, teraz, że istnieją Są dwie funkcje specjalne my trzeba zadzwonić z notacji z kropkami tutaj natychmiast po wywołaniu uzyskać JSON. Jeden nazywa się zrobić. Jeden nazywa się niepowodzeniem. Można myśleć o nich jako przewodnika sukcesu i obsługi awarii wystarczy w przypadku gdyby coś poszło nie tak. Teraz spójrzmy na ostatnie Kilka funkcji w tym pliku. Tutaj jest funkcja nazywa showInfo, które pokazuje informacje w jednym z tych, małe okna informacyjne, które pojawia się, gdy użytkownik kliknie znacznik. Tu dalej jest że funkcja aktualizacji które wdrożyliśmy dla Ciebie. To określa granice mapie. Jakie są współrzędne GPS z jego na północny wschód, a rogi na południowy zachód tutaj. Przygotowaliśmy kilka parametrów HDP tu, a następnie przepuszczono je ostatecznie do update.php, które mamy również realizowane dla Ciebie. Że ostatecznie wróci trochę JSON z pliku o nazwie update.php a następnie usuwa wszelkie markery na ekranie i następnie przechodzi nad Dane, które się wrócić z update.php, które znowu jest tylko tablicą JSON. A następnie ostatecznie dodaje marker każde z tych miejsc, brak obsługi lub błędy, które mogą bardzo dobrze się stało. Teraz po prostu dać ci smaku, w jaki sposób może przejść o debugowanie tego projektu, sobie sprawę, że mam otwarty w przejść tę kartę, żeby tego adresu URL, pset8 / articles.php? geo = 02138. Teraz, ponownie, artykuły o PHP wdrożyliśmy dla Ciebie więc to nie jest tak dużo co będziesz przy użyciu do debugowania, ale raczej z techniką. Uwaga, rozglądałem się za Cambridge kod tutaj, zip, i stałam powrotem, rzeczywiście, JSON Tablica JSON obiektów wewnątrz której są dwa keys-- Link i tytuł. Więc ta funkcjonalność pracuje już dla Ciebie. Ale ta technika będzie ręcznie do adresu URL, jak to coś jak search.php? geo = Cambridge lub 02138 lub co użytkownik wpisane powinny okazać się bezcenne, jak ty sam, spróbuj dowiedzieć się dokładnie, czy i dlaczego search.php działa lub nie. Ostatecznie więc, masz Kilka TODO przed tobą. Idziesz do pierwszych narzędzi że skrypt import, że Czytamy w us.text do bazy danych. Jesteś wtedy będzie trzeba do wdrożenia search.php tak, że zachowuje się dokładnie tak, jak podano. Jesteś wtedy będzie chciał skupić się na scripts.js i ostatecznie realizuje tych kilka todos, w tym do skonfigurowania i że szablon, dodawanie znaczników, usuń znaczniki, a to trwało, ale nie najmniej, jeden osobisty kontakt. Po Twojej pracy mashup zupełnie jak nasza, celem pod ręką jest, aby dodać osobisty dotykać do mashup, czy to estetyczne i funkcjonalne. Weź mashup kiedykolwiek tak nieznacznie do następnego poziomu. Tak długo, jak wcisnąć się poza Twoja znajomość samej specyfikacji i odebrać jedną technikę nowe, nawet jeśli jest to tylko coś estetycznego jak zmiana Układ mapie, że używasz, Zakres, że oczekujemy będą zadowoleni. Że to jest problem Zestaw 8 Mashup. Czekajcie na więcej w Specyfikacja i powodzenia zaradzenie temu, Twoja ostatnia Problem CS50 ustawić kiedykolwiek. [MUZYKA GRY]