Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Nie dodaje rekordu.
Forum PHP.pl > Forum > Przedszkole
GoldeNx3
  1. window.fbAsyncInit = function() {
  2. FB.init({appId: '342258175832180', status: true, cookie: true, xfbml: true});
  3. FB.Event.subscribe('edge.create',
  4. function(href, widget) {
  5. // Do something, e.g. track the click on the "Like" button here
  6. alert('You just liked '+href);
  7. $.ajax({
  8. type: "GET",
  9. url: "inseru.php",
  10. data: "?autor=" + href,
  11. async: true
  12. });
  13. }
  14. );
  15. };


W insert.php mam prosty skrypt który dodaje rekord do bazy. On działa, bo testowałem. Ale po kliknięciu w "Lubię to" nic sie nie dzieje, pisze tylko "You just liked <link>" Ale nie dodaje rekordu, czemu?
tolomei
Witaj.

Czyżby zwykła literówka ?

Kod
url: "inseru.php"


Pozdrawiam.
GoldeNx3
Witaj. Nie, nie literówka. Tutaj podałem inny plik, ale tak naprawdę mam poprawny.
tolomei
Spróbuj dać coś takiego:

Kod
$.ajax({
    type: "GET",
    url: "inseru.php",
    data: ( 'autor': href },
    async: true
});
mortus
Ciąg danych (data) nie powinien zawierać znaku zapytania. Możesz również użyć rozwiązania zaproponowanego przez użytkownika tolomei, ale powinno to wyglądać trochę inaczej:
[JAVASCRIPT] pobierz, plaintext
  1. // ...
  2. // sposób 1
  3. data: "autor=" + href,
  4. // sposób 2
  5. data: { autor: href },
  6. // ...
[JAVASCRIPT] pobierz, plaintext
tolomei
Użytkownik mortus ma zupełną rację smile.gif
GoldeNx3
No niestety.

  1. <script type="text/javascript">
  2. window.fbAsyncInit = function() {
  3. FB.init({appId: '342258175832180', status: true, cookie: true, xfbml: true});
  4. FB.Event.subscribe('edge.create',
  5. function(href, widget) {
  6. // Do something, e.g. track the click on the "Like" button here
  7. alert('You just liked '+href);
  8. $.ajax({
  9. type: "GET",
  10. url: "dodaj2.php",
  11. data: { autor: href },
  12. async: true
  13. });
  14. }
  15. );
  16. };
  17. </script>


Nie działa. Skrypt dodaj2.php:

  1. <?php
  2. include_once('./connect.php');
  3. $zapytanie = mysql_query("UPDATE `user` SET `gg` = '333' WHERE `login`='Elvis'");
  4. ?>


Już nawet nie pobieram parametrów z tego Ajaxa, tylko próbuje normalnie uruchomić skrypt, ale też nic.
tolomei
Odpal to tak:

  1. <?php
  2. error_reporting(E_ALL);
  3. ini_set('display_errors','1');
  4. include_once('./connect.php');
  5. $zapytanie = mysql_query("UPDATE `user` SET `gg` = '333' WHERE `login`='Elvis'");


I napisz czy wyrzuca błędy.
GoldeNx3
Żadnych..
tolomei
- sprawdź dane połączenia oraz wynik funkcji mysql_connect(), który powinien zwracać wartość różną od false,
- sprawdź czy użyłeś funkcji mysql_select_db(),
- skopiuj zapytanie "UPDATE..." i wklej do phpMyAdmin - zobacz czy działa

Pozdrawiam
markonix
A sprawdziłeś czy dochodzi do skryptu PHP?
Proste echo i konsola?
tolomei
@markonix, GoldeNx3 uruchamiał ten skrypt nawet ręcznie ze sztywnymi danymi. Coś nie tak w php.
GoldeNx3
Dokładnie. Skrypt uruchamiałem ręcznie i ustawiał pole "gg" na liczbę 333

Ale ten Ajax coś nie chce działać.
markonix
No to się zdecyduj (zdecydujcie).

Raz mówisz o ajax, a raz o błędzie w skrypcie..
Odpalałeś ręcznie skrypt i nie działał więc w skrypcie jest problem, nie w ajax więc ustosunkuj się posta tolomei.
tolomei
To jeśli Twoja strona z ajaxem to na przykład: http://www.example.com/index.php
to Twój skrypt powinien znajdować się w tym samym katalogu co index.php.

Czy tak jest?

--- EDIT
@markonix to ja przepraszam.
Kolega powiedział, że:

Cytat
Już nawet nie pobieram parametrów z tego Ajaxa, tylko próbuje normalnie uruchomić skrypt, ale też nic.


Co oznaczało, że skrypt jest uruchamiany za pomocą AJAX-a, ale bez przekazywania parametrów.
Ja zasugerowałem się słowem "normalnie" co dla mnie oznacza skrypt wywołany z palca.
GoldeNx3
Teraz to ja zamieszałem, przepraszam.

Plik dodaj2.php działa, robi wpis do bazy.
Natomiast funkcja zapisana w pierwszym poście nie wykonuje zawartości pliku dodaj2.php
Znajduje się ona w index.php i link wygląda jak w/w.
tolomei
Ale czy dodaj2.php znajduje się w tym samym katalogu co index.php ? smile.gif
GoldeNx3
Tak, tak. W tym samym.
markonix
Co pokazuje konsola?
GoldeNx3
Dobra. Nie robię tego, za mało się znam, by to ogarnąć. ; /
tolomei
@GoldeNx3, posłuchaj.
Może teraz zdaje Ci się, że AJAX to nie wiadomo jak skomplikowana rzecz - a to nie jest prawda.
Po prostu masz jakiś głupi błąd i ciężko go znaleźć.
Tak na prawdę to AJAX jest prosty.
Daj sobie jeszcze jedną szansę i przeczytaj ten kurs: http://webhosting.pl/Kurs.jQuery.Czesc.3.D...ekty.interfejsu
Najlepiej sobie napisz ten skrypt co oni tam robią.
Myślę, że po tym kursie wszystko się wyjaśni.
Nie poddawaj się wink.gif

Pozdro.
GoldeNx3
Ale ze mnie debil. biggrin.gif

Wszystko przez to, że nie załączyłem "biblioteki" jquery:

  1. <script src="http://code.jquery.com/jquery-latest.js"></script>


Jak mówiłem, pierwszy raz to robiłem, ale udało się, dziękuję wszystkim za odpowiedzi, ale mam pytanie jeszcze jedno. Jak wywołać taki skrypt na dowolnym obrazku?

Bo tutaj mam API przystosowane do kliknięcia w "Lubię to" A co, jak chcę, aby skrypt wykonał się z mojego obrazka, ale to nie będzie tym razem "Lubię to" i chce obrazek, a nie button.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.