nie dzialajacy ajax w laravel 5.7

0

Hej
czy ktos moze mi powiedziec dlaczego to nie dziala , kod javascript

https://pastebin.pl/view/11a0f749

i kod php

https://pastebin.pl/view/f0de60be

0

co to znaczy "nie działa" ?

0

Kod PHP nie zwraca żadnej wartości albo kod javascriptowy nie wyświetla na stronie , czyli krótko mówiąc gdzieś jest blad

0
Jan Kowal napisał(a):

Kod PHP nie zwraca żadnej wartości albo kod javascriptowy nie wyświetla na stronie , czyli krótko mówiąc gdzieś jest blad

Od kiedy to tak wygląda odwoływanie się do bazy w laravelu o.O
W konsoli deweloperskiej (chrome) js nie zwraca żadnych błędów?
Poza tym w phpie masz błąd linia 9.

    $sql = 'SELECT * FROM videos where title LIKE "$title%"';
0

Tak widziałem zrobiony Ajax w tutorialu do 5.2 . Składnia SQL nie jest z laravela bo to nie jest controller , ot zwykły plik PHP . Moje pytanie jest takie czy taka konstrukcja czyli widok->plik HTML nie controller jest dopuszczalna , czy w takim wypadku też trzeba używać routa i czy ten przykład ma szansę zadziałać i co należy poprawić ?

1

Musisz się zdecydować czy piszesz w laravelu czy nie to po pierwsze, a po drugie musisz ustawić cors

1

Tak to nie ma prawa działać.
Musisz ustawić routing w routs.php
Musisz mieć jakieś kontrolery etc.
Żeby działał AJAX musisz przekazywać token CSRF.
Zobacz sobie najlepiej cały tutorial np. coś takiego:

1
Jan Kowal napisał(a):

Składnia SQL nie jest z laravela bo to nie jest controller , ot zwykły plik PHP . Moje pytanie jest takie czy taka konstrukcja czyli widok->plik HTML nie controller jest dopuszczalna , czy w takim wypadku też trzeba używać routa i czy ten przykład ma szansę zadziałać i co należy poprawić ?

Ja napiszę tak. Korzystając z Laravela korzystaj z Laravela i API jakie możesz stworzyć dzięki niemu. To raz. Odnośnie Twojego skryptu to PRAWDOPODOBNIE on działa tylko w żaden sposób nie przekazujesz tych danych z powrotem do widoku.

Zrób chociażby coś takiego:

<?php
        define (DB_USER, "root");
        define (DB_PASSWORD, "");
        define (DB_DATABASE, "laravel1");
        define (DB_HOST, "localhost");
        $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
 
        $title  = $_POST["title"];  
        $sql = 'SELECT * FROM videos where title LIKE "$title%"';
        $result = $mysqli->query($sql);
   
        while($row = $result->fetch_assoc()){
            $json[] = $row;
        }
      $data['data'] = $json;
      var_dump($data);

i zobacz co Ci zwróci skrypt w odpowiedzi. Ten Twój kod zgaduję ma zwracać JSON? Jeżeli tak to nie zwróci JSON bo dane w $data nie są w formacie JSON.

I jeszcze szybka podpowiedź: https://stackoverflow.com/questions/3351882/convert-mysqli-result-to-json

0
Jan Kowal napisał(a):

Hej
czy ktos moze mi powiedziec dlaczego to nie dziala , kod javascript

https://pastebin.pl/view/11a0f749

i kod php

https://pastebin.pl/view/f0de60be

Tak jak jurek ci napisał Musisz ustawić routing w routs.php, Czy udało ci się rozwiązać problem bo jestem ciekawy, kiedyś robiłem coś podobnego, ale nie znalazłem rozwiązania.

0

Ale co dla was jest problemem w zapytaniu ajax w laravelu, że nie możecie znaleźć rozwiązania?
Jeżeli routing jest poprawnie zrobiony, to wystarczy utworzyć POPRAWNĄ ścieżkę.
Tutaj mogę polecić bibliotekę dla nazwanych ścieżek - https://github.com/tightenco/ziggy która pozwala na generowanie ścieżek tak jak to się robi za pomocą helper'a laravela, natomiast nie ma zupełnie żadnego problemu by się odwołać do tego poprzez podanie po prostu linku samemu.
Byleby to do czego się odwołujemy było zadeklarowane w pliku routes/web.php, może to być też zwykła funkcja anonimowa gdzie na końcu dajemy return response()->json($data);

1 użytkowników online, w tym zalogowanych: 0, gości: 1