Jak JS ma przekazć zmienną do PHP?

0

Mam taki fragment kodu:

function like(group) {
        $.post("like.php", {group:group}, function onSuccess(data) {
        $("#likes- " + group).text(data.likes);
        });

I muszę mieć to w pliku like.php... takim...

<?php
$group = // NO I JAK MAM TO ZROBIĆ?
$currentLikes = file_get_contents("like-$group.txt");
$newLikes = $currentLikes + 1;
file_put_contents("like-$group.txt", $newLikes);
echo json_encode(['likes' => $newLikes]);
?>

Dziękuję za pomoc!

0

No jak robisz ajaxem POST to powinieneś mieć po stronie serwera to co wyślesz jako dane w tablicy $_POST jeśli piszesz w czystym PHP.

0

Warto już zostawić JQuery i użyć wbudowanego w przeglądarkę FetchAPI:
https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API```
Wówczas przykład by wyglądał tak:

Część HTML i JavaScript:

<html><body>
  <script>   
  
    var dataToSend = {
      zmienna1 : "Moje dane do wysłania do serwera jako POST",
      zmienna2 : "Inna zmienna",
      zmienna3 : "Jeszcze inna zmienna",
    } ;
  
    var requestInit = {
      'method': 'POST',
      'mode': 'cors',
      'cache': 'no-cache',
      'headers': {
        'Content-Type': 'application/json'
      },
      'referrerPolicy': 'no-referrer',
      'body': JSON.stringify (dataToSend)
    };     
     
    var retPromise = fetch( "test.php" , requestInit ).then(response => response.text())
    .then((response) => {        
      try {
        // Wszystko OK w zmiennej response mamy odpowiedź z serwera
        console.log ( "OK:", response ) ;
      }catch(err){
        // Coś jest źle
        alert ( "Cuś poszło źle!" ) ;
      }
    })
    .catch( err => console.log(err) );
     
  </script>
</body></html>

No i po stronie PHP ( plik test.php ):

<?php

    //
    // Dane przychodzą jako JSON w POST i tak odbiera się je w PHP
    //
    $input = file_get_contents('php://input') ; 
    $input = json_decode( $input, true ) ;
    
    //
    // Tu możemy opracować dane i odesłać do przeglądarki ...
    //
    echo "\r\nPomniejszony ciąg zmiennej 1:".strtolower ( $input [ 'zmienna1' ] ) ;
    echo "\r\nPowiększony ciąg zmiennej 2:".strtoupper ( $input [ 'zmienna2' ] ) ;

0

@katakrowa: Okay. Zakładam, że kopjuj-wkleje to i zadziała. Ale jak odbieram te dane?

$_POST['zmienna1'];
$_POST['zmienna2'];
$_POST['zmienna3'];

itd?

0
James Prada napisał(a):

@katakrowa: Okay. Zakładam, że kopjuj-wkleje to i zadziała. Ale jak odbieram te dane?

Przejrzałeś chociaż do końca tego posta co Ci napisałem? Chyba nie.

<?php

    //
    // Dane przychodzą jako JSON w POST i tak odbiera się je w PHP
    //
    $input = file_get_contents('php://input') ; 
    $input = json_decode( $input, true ) ;
0

Poczytaj sobie o funkcj JavaScript: console.log()
oraz o funkcjach PHP: **print_r **lub var_dump

Bez tego będziesz zgadywał a nie pisał programy.

0

O widzę, że @James Prada: odszedł w konwulsjach ...

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