Pobieranie zmiennej z jQuery do PHP

Odpowiedz Nowy wątek
2011-09-02 16:14
0

Witam

Mam funkcję losującą w jQuery i chciałbym przekazać jej wynik do zmiennej w PHP, ale nie mam pojęcia jak to wykonać. Szukałem i znalazłem coś pod JS, ale wgłębiając się w temat wyszło, że strasznie dużo zamoty jest i lepiej wykonać to w jQuery.

Nie mogę zrobić losowania w PHP, ponieważ zmienna musi być losowana za każdym kliknięciem w link, który wyświetla okienko popup.

Pozdrawiam

edytowany 1x, ostatnio: madmike, 2011-09-02 18:59

Pozostało 580 znaków

2011-09-02 16:27

Skrypt JS (przykładowy):

$.post('random.php', {liczba: wylosowana_liczba}, function(data){});

W skrypcie PHP odczytujesz to tak:

$Wylosowana_liczba = $_POST['liczba'];

Zapewne można to zrobić o niebo lepiej, lecz to wystarczy.

Drobne wyjaśnienie:

$.post('random.php', {liczba: wylosowana_liczba}, function(data){});

Po wykonaniu tego kodu w zmiennej data będzie to, co wyświetlił wywołany skrypt (tutaj plik random.php).
My chcemy wyłącznie wywołać ten plik, bez wyświetlania dodatkowego okienka, itp.
Jeżeli potrzebujesz zobaczyć to, co wyświetlił kod PHP, to możesz zrobić coś w stylu:

$.post('random.php', {liczba: wylosowana_liczba}, function(data)
{
 alert(data);
});

No ale ja nie mogę wywołać tego w osobnym skrypcie. Mam w jednym pliku skrypt w jQuery, który losuje zmienną i w tym samym pliku skrypt w PHP, który z tej zmiennej ma korzystać.

Plik random.php:

if (!isset($_POST['liczba']))
{
 echo '<script type="text/javascript" src="jquery.js"></script>';
 echo "<script>
 var wylosowana_liczba = random();
 $.post('random.php', {liczba: wylosowana_liczba}, function(data) 
 {
  alert(data); //Powinno wyświetlić `Kod JS wygenerował liczbę (...)`
 });
 </script>";
} else {
 echo "Kod JS wygenerował liczbę ".$_POST['liczba'];
}

?


edytowany 9x, ostatnio: Patryk27, 2011-09-02 18:51
Patryk nie bardzo rozumiem. Ja mam skrypt w tym samym pliku php, w którym chcę odczytać tą zmienną. I wedle tego co napisałeś, to w JS pierwszy parametr to nazwa pliku, w którym znajduje się skrypt JS (czyli ten sam w którym dzieje się całość), drugi to przypisanie wylosowanej zmiennej, a ostatnia? Po co data> Chyba, ze to czysty kod dla przykładu. - Robster 2011-09-02 18:15
W "data" będzie to, co wyświetlił skrypt. My tego nie potrzebujemy, więc po prostu zostawiamy tę zmienną(?) w spokoju. - Patryk27 2011-09-02 18:16
No ale ja nie mogę wywołać tego w osobnym skrypcie. Mam w jednym pliku skrypt w jQuery, który losuje zmienną i w tym samym pliku skrypt w PHP, który z tej zmiennej ma korzystać. - Robster 2011-09-02 18:43

Pozostało 580 znaków

2011-09-02 19:55
0

Dzięki serdeczne mistrzu, teraz już rozumiem, straszny wzrokowiec ze mnie :/
Spokojnego wieczora życzę :)

Proszę :) - Patryk27 2011-09-02 20:37

Pozostało 580 znaków

2011-09-03 14:18
0

A jednak nie jest tak pięknie. Mam coś takiego:

function ajaxTest()
    {
    var zmienna = "<?=$elementy;?>";
        $.post(
            'modules/mod_pudelko/ajax.php',
            {zmienna1: zmienna},
            function(data) {
            alert(data);
            }
        );
    }

Ładanie działa, ale nadal nie mogę przypisać zmiennej data, to zmiennej w php :/
Taka linijka:

echo "Kod JS wygenerował liczbę ".$_POST['data'];

nic nie daje :/

edytowany 1x, ostatnio: Robster, 2011-09-03 14:19

Pozostało 580 znaków

2011-09-03 14:49
0

Według tego kodu:

function ajaxTest()
    {
        var zmienna = "<?=$elementy;?>";
        $.post(
            'modules/mod_pudelko/ajax.php',
                        {zmienna1: zmienna},
            function(data) {
            alert(data);
            }
        );
    }

Zmienną w PHP odczytujesz poprzez:

$_POST["zmienna1"]

Chyba, że ja nie rozumiem...


edytowany 1x, ostatnio: Patryk27, 2011-09-03 14:49

Pozostało 580 znaków

2011-09-03 16:02
0

No tak też próbowałem i nic z tego :/
W JS w alert wyświetla się prawidłowo, ale w php już nie czyta zmiennej :/
Ajax.php wygląda tak:

<?php 
$c = $_POST['zmienna1']; 
$k = rand( 1 , $c );
echo $k; ?>
edytowany 1x, ostatnio: Robster, 2011-09-03 16:02

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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