Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX][JavaScript][PHP]szybkosc strony
viamarimar
post
Post #1





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


Kod poniżej to kopia ze strony:
http://www.codexworld.com/autocomplete-tex...uery-php-mysql/
Tu demeo:
http://demos.codexworld.com/autocomplete-t...uery-php-mysql/

Nie to nie żadna reklama.
Mam pytanie. Chce zrobić coś takie że w bazie danych mam np 10000 składników. Teraz dodaje przepis do przepisu nie dodaje skladnikow standardowo w textarea tylko z wyboru z tych 10000. Chciałbym by było autopodpowiadanie jak powyżej. Moje pytanie brzmi czy przy tym układzie wszystkie te 10000 skladnikow musi byc umieszczone w kodzie, bo sql bedzie je zawsze pobieral do tablicy na ktorej operuje przykladowy skrypt? Czy jest jakieś inne rozwiazanie, tak by nie bylo tego w kodzie? Czy takie coś zwalnia stronę?( moim zdaniem, i z tego co wiem każda linia html zwalnia w jakim stropniu skrypt)

A teraz zalozmy ze takie pole wyszukujace jest jedno dla kazdego skladnika. Dynamicznie mozna dodac ich z 50(limit skladnikow w przepisie). Co znaczy, że takich tablic bylo by az 50? TO dramatycznie zwalnia strone, co z tym fantem zrobic?


  1. <?php
  2. //database configuration
  3. $dbHost = 'localhost';
  4. $dbUsername = 'root';
  5. $dbPassword = '';
  6. $dbName = 'codexworld';
  7.  
  8. //connect with the database
  9. $db = new mysqli($dbHost,$dbUsername,$dbPassword,$dbName);
  10.  
  11. //get search term
  12. $searchTerm = $_GET['term'];
  13.  
  14. //get matched data from skills table
  15. $query = $db->query("SELECT * FROM skills WHERE skill LIKE '%".$searchTerm."%' ORDER BY skill ASC");
  16. while ($row = $query->fetch_assoc()) {
  17. $data[] = $row['skill'];
  18. }
  19.  
  20. //return json data
  21. echo json_encode($data);
  22. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
viamarimar
post
Post #2





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


Tylko ja musze mieć jakiś działający przykład by ruszyć dalej. W sensie u siebie.

Pytanie, zrobilem cos takiego na localhoscie:

plik 1 (index.html)
  1. <html lang="en">
  2. <head>
  3. <title>Bootstrap Typeahead with Ajax Example</title>
  4. <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
  5. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
  6. <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-3-typeahead/4.0.1/bootstrap3-typeahead.min.js"></script>
  7. </head>
  8. <body>
  9.  
  10. <div class="row">
  11. <div class="col-md-12 text-center">
  12. <br/>
  13. <h1>Search Dynamic Autocomplete using Bootstrap Typeahead JS</h1>
  14. <input class="typeahead form-control" style="margin:0px auto;width:300px;" type="text">
  15. </div>
  16. </div>
  17.  
  18. <script type="text/javascript">
  19.  
  20. $('input.typeahead').typeahead({
  21. source: function (query, process) {
  22. return $.get('/ajaxpro.php', { query: query }, function (data) {
  23. console.log(data);
  24. data = $.parseJSON(data);
  25. return process(data);
  26. });
  27. }
  28. });
  29.  
  30. </script>
  31. </body>
  32. </html>


plik2 (ajaxpro.php)
  1. <?php
  2.  
  3. $db = "localhost";
  4. $db_user = "root";
  5. $db_pass = "";
  6. $db_name = "dump";
  7. $link = mysqli_connect($db, $db_user, $db_pass);
  8. if (!$link) {
  9. die("Not connected : " . mysqli_error());
  10. }
  11.  
  12. $db_select = mysqli_select_db($link,$db_name);
  13. if (!$db_select) {
  14. die ("Can't use".$db_name." : " . mysqli_error());
  15. }
  16.  
  17. if(isset($_GET['query'])) {
  18.  
  19. $sql = "SELECT city FROM zips WHERE city LIKE '%".$_GET['query']."%'
  20. LIMIT 10";
  21. $result= mysqli_query($link,$sql) or die(mysqli_error());
  22.  
  23.  
  24. $json = [];
  25. while($row = mysqli_fetch_assoc($result)){
  26. $json[] = $row['city'];
  27. }
  28.  
  29. echo json_encode($json);
  30. }
  31.  
  32.  


Coś działa.. coś nie działa heh..
Jest pole szukajki, w szukajke jak wpisuje to za każdym razem są zmiany w consoli pojawiaja sie przekierowania przykadowo:
Failed to load resource: the server responded with a status of 404 (Not Found)
http://localhost:8080/ajaxpro.php?query=al Failed to load resource: the server responded with a status of 404 (Not Found)
http://localhost:8080/ajaxpro.php?query=alf Failed to load resource: the server responded with a status of 404 (Not Found)
http://localhost:8080/ajaxpro.php?query=alfs Failed to load resource: the server responded with a status of 404 (Not Found)
http://localhost:8080/ajaxpro.php?query=alfss Failed to load resource: the server responded with a status of 404 (Not Found)
http://localhost:8080/ajaxpro.php?query=alfsss Failed to load resource: the server responded with a status of 404 (Not Found)
Problemem jest to że adres taki nie istnieje, tylko dlaczego skoro:

tu tak jakby ustawiam by tam kierowalo:
  1. return $.get('/ajaxpro.php', { query: query }, function (data) {

a tu sprawdzam jesli istnieje taki get to pobieraj itd..
  1. if(isset($_GET['query'])) {



Na początek chodzi o te przekierowania tylko. Jak się to ustawia by "ajax?" przesylal dane

Ten post edytował viamarimar 12.01.2017, 14:36:25
Go to the top of the page
+Quote Post

Posty w temacie
- viamarimar   [AJAX][JavaScript][PHP]szybkosc strony   11.01.2017, 22:38:47
- - Puszy   Udźwignij to poprzez Ajaxa. Utwórz skrypt który bę...   12.01.2017, 10:24:34
- - viking   Zamiast query użyj http://php.net/manual/en/mysqli...   12.01.2017, 10:31:37
- - viamarimar   Tylko ja musze mieć jakiś działający przykład by r...   12.01.2017, 14:33:49
- - viking   Masz wyraźnie 404 na ajaxpro.php. Jesli to jest gd...   12.01.2017, 14:37:21
- - viamarimar   Serio chodziło o kreske, ale mógłbyś więcej w tym ...   12.01.2017, 14:42:45
- - viking   Poczytaj o ścieżkach absolutnych i relatywnych. Zn...   12.01.2017, 14:53:01
- - viamarimar   Chodzi o to że robiłem to na localhoscie - gdy zad...   12.01.2017, 15:11:43
- - viking   ../ oznacza katalog wyżej w stosunku do ak...   12.01.2017, 15:25:57
- - viamarimar   Ok, jest wporządku, tylko takie pytanie czemu gubi...   12.01.2017, 16:28:09
- - viking   Nie widzę żebyś gdziekolwiek ustawial w tym pliku ...   12.01.2017, 16:48:22
- - viamarimar   Tylko jeśli wywale pętle to jest tak: [PHP] pobie...   12.01.2017, 17:04:50
- - viking   Zamiast assoc http://php.net/manual/en/mysqli-resu...   12.01.2017, 17:29:45
- - viamarimar   To tylko przykład ale 1.Czy zamiast prepare nie m...   12.01.2017, 18:19:23
- - viking   Stosujesz styl proceduralny zatem [PHP] pobierz, p...   12.01.2017, 19:07:20
- - viamarimar   Mam inputa korzystam z typeahed.js [PHP] pobierz, ...   12.01.2017, 22:57:17
- - viking   Inputy możesz tworzyć za pomocą each() + val(). Ch...   13.01.2017, 09:14:23
- - viamarimar   Wiem jak tworzyc inputy i calosciowo dziala. prob...   13.01.2017, 10:35:42
- - viking   Na stronie projektu https://github.com/bassjobsen/...   13.01.2017, 10:41:38
- - viamarimar   Nie bardzo wiem jak by to miało pomóc.   13.01.2017, 11:36:43


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.09.2025 - 18:12