2011-07-21 9 views
8

Próbuję wysłać dane do mojego skryptu PHP, aby obsłużyć pewne rzeczy i wygenerować niektóre elementy.Ajax przekazuje dane do skryptu php

$.ajax({ 
    type: "POST", 
    url: "test.php", 
    data: "album="+ this.title, 
    success: function(response) { 
     content.html(response); 
    } 
}); 

W moim pliku PHP staram się odzyskać nazwę albumu. Choć kiedy zatwierdzić go, stworzyłem alert, aby pokazać, co albumname jest dostać nic, staram się uzyskać nazwę albumu przez $albumname = $_GET['album'];

chociaż powie niezdefiniowany:/

Odpowiedz

30

Ty wysyłasz AJAX POST Żądaj więc użycia na serwerze serwera $albumname = $_POST['album']; w celu pobrania wartości. Również polecam piszesz żądania takiego w celu zapewnienia odpowiedniego kodowania:

$.ajax({ 
    type: 'POST', 
    url: 'test.php', 
    data: { album: this.title }, 
    success: function(response) { 
     content.html(response); 
    } 
}); 

lub w jego krótszej formie:

$.post('test.php', { album: this.title }, function() { 
    content.html(response); 
}); 

a jeśli chciał użyć żądanie GET:

$.ajax({ 
    type: 'GET', 
    url: 'test.php', 
    data: { album: this.title }, 
    success: function(response) { 
     content.html(response); 
    } 
}); 

lub w krótszej formie:

$.get('test.php', { album: this.title }, function() { 
    content.html(response); 
}); 

, a teraz na twoim serwerze będziesz mógł używać $albumname = $_GET['album'];. Bądź jednak ostrożny przy żądaniach AJAX GET, ponieważ mogą one być buforowane przez niektóre przeglądarki. Aby uniknąć ich buforowania, możesz ustawić wartość cache: false.

+0

Dzięki temu zadziałało dla mnie przy użyciu GET. Nie mogłem tego zrozumieć:/dziękuję za kupę! – NeedHelp

+0

$ .get ('test.php', {album: this.title} chcę zapytać, jak wysłać dwie wartości –

+1

@ M.chaudhry, które mogłeś już znaleźć, ale dla przyszłych czytelników jest to [JSON] (http://en.wikipedia.org/wiki/JSON), więc aby wysyłać wiele wartości, wystarczy dodać kolejny z przecinkiem: '$ .get ('test.php', {album: this.title, song: that.title}); ' – Ian

9

Spróbuj wysyłania danych tak:

var data = {}; 
data.album = this.title; 

Następnie można uzyskać do niego dostęp jak

$_POST['album'] 

zawiadomieniu nie „get”

2

Można również użyć kodu miech na przekazywanie danych używając ajax.

var dataString = "album" + title; 
$.ajax({ 
    type: 'POST', 
    url: 'test.php', 
    data: dataString, 
    success: function(response) { 
     content.html(response); 
    } 
});