• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wysłanie zmiennej js do php przy użyciu ajax i jquery

VPS Starter Arubacloud
0 głosów
919 wizyt
pytanie zadane 30 października 2016 w JavaScript przez niezalogowany

Witam mam pewną stronę na której chciał bym wysyłać stosunkowe dość małe zmienne do php, by tam włożyć je do zmiennej $_SESSION by po ewentualnym wyjściu stan strony został zapisany. Wszystko już zrealizowałem czyli pobierania informacji z php do js przy użyciu $.ajax Natomiast mam problem z odwrotnym działaniem nie mam pojęcia jak wysłać  coś od js do php. wymyśliłem takie coś ale nie działa.

    $.ajax({
        type: "POST",
        url: "jakistamplik.php",
        dataType : 'json',
        data: {
            zmienna1 : 'przykladowytext',
            zmienna2 : 210  //przykladowa liczba
        },
        success: function(json) {
            console.log(json)
        },
        error: function() {
            console.log( "Brak połączenia");
        }
    });

 

natomiast w php jest tak

<?php
$zmienna1 = $_POST['zmienna1'];
$zmienna2 = $_POST['zmienna2'];

$result = array();
$result['zmienna1'] = $zmienna1;
$result['zmienna2'] = $zmienna2;

echo json_encode($result); 

 

no i w konsoli zwraca "Brak połączenia" 

a w php zwraca


Notice: Undefined index: zmienna1 in  on line 2

Notice: Undefined index: zmienna2 in  on line 3
{"zmienna1":null,"zmienna2":null}

1 odpowiedź

0 głosów
odpowiedź 30 października 2016 przez Ehlert Ekspert (212,630 p.)

Js zamień na:

error: function(jqXHR, textStatus, errorThrown) {
  console.log(textStatus, errorThrown);
}

PHP na:

$result = [ //nowsza składnia
"zmienna1" => $zmienna1,
"zmienna2" => $zmienna2,
]

Zobacz co siedzi w błędach.

komentarz 30 października 2016 przez niezalogowany
consola nie zwraca już błędu, zwraca success. Natomiast php trochę błędów znikło ale nadal zostało

Notice: Undefined index: zmienna1 in  on line 2

Notice: Undefined index: zmienna2 in on line 3
{"zmienna1":null,"zmienna2":null}
komentarz 30 października 2016 przez Ehlert Ekspert (212,630 p.)

zbadaj zmienne w PHP:

if (array_key_exists("zmienna1", $_POST) &&
    array_key_exists("zmienna2", $_POST)) {
    $result = [/*...*/];
    echo json_encode($result);
} else {
    $result = [/*...*/];
    echo json_encode($result);
}

 

komentarz 30 października 2016 przez niezalogowany

Jeśli chodziło o

<?php
if (array_key_exists("zmienna1", $_POST) &&
    array_key_exists("zmienna2", $_POST)) {
    $result = [
        "zmienna1" => $zmienna1,
        "zmienna2" => $zmienna2
    ];
    echo json_encode($result);
}else{
    $result = [/*...*/];
    echo json_encode($result);
}

to konsola zwraca:

parsererror SyntaxError: Unexpected token < in JSON at position 0(…)

a php wyświetla []

Podobne pytania

0 głosów
0 odpowiedzi 1,024 wizyt
+1 głos
3 odpowiedzi 1,064 wizyt
0 głosów
2 odpowiedzi 747 wizyt

92,453 zapytań

141,262 odpowiedzi

319,086 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...