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

PHP - POST nie wyświetla zmienionych danych

Object Storage Arubacloud
0 głosów
590 wizyt
pytanie zadane 3 listopada 2020 w PHP przez Jacuchna0 Użytkownik (640 p.)

Witam 

Mam wygenerowaną tabele w taki sposób

models/board.php

public function DrawBoard(){        
            echo '<table id="board">';
            $i = 0;

            for($row= 0; $row < 8; $row++)
            {
                echo '<tr>';

                for($col= 0; $col < 8; $col++){            

                    if($this->fields[$row][$col] != 'e')
                    {
                        echo '<td id="'.$i.'">' . $this->fields[$row][$col] . '</td>';
                    }   
                    else
                    {
                        echo '<td id="'.$i.'"></td>';
                    }
                    $i++;
                }
                echo '</tr>';
            } 
            echo '</table>'; 
        }  

 

do wykrycia kliknięcia w którąś komórkę używam takiego kodu

ten kod znajduje się w index.php


<script>
    $('#board td').on('click', function(){
        var id = $(this).attr('id');
        var fieldValue = $(this).html();
       
        $(this).css("background-color","green");

        $.post('models/board.php', {'id': id}, function(data){
        });
    });

</script>

chciałbym wyświetlić w php id elementu który kliknąłem próbuję w taki sposób

$id = $_POST['id'];
        echo($id);

jednak na stronie nic się nie wyświetla, czy mógłby ktoś podpowiedzieć jak to zrobić, czy może trzeba jakiś element html odświeżać?

komentarz 3 listopada 2020 przez ScriptyChris Mędrzec (190,190 p.)

Czy zmienna id w JS na pewno posiada wartość? Czy w konsoli przeglądarki są jakieś błędy? Pokaż nagłówki requesta. Zmienna $_POST posiada dane, jeśli request ma odpowiednio ustawiony nagłówek Content-Type:

An associative array of variables passed to the current script via the HTTP POST method when using application/x-www-form-urlencoded or multipart/form-data as the HTTP Content-Type in the request.

Pytanie jaką wartość dla tego nagłówka ustawiło jQuery? Teoretycznie domyślnie jest to 'application/x-www-form-urlencoded; charset=UTF-8'.

https://api.jquery.com/jquery.ajax/

komentarz 3 listopada 2020 przez Jacuchna0 Użytkownik (640 p.)

W konsoli brak błędów

zakładka network:

( każdy board.php to jedno kliknięcie w komórkę)

A tutaj header requesta

komentarz 3 listopada 2020 przez ScriptyChris Mędrzec (190,190 p.)

Pokaz jeszcze zakładkę response w Networku dla tego zapytania. I pokaż co jest w zmiennej data którą dostaje callback w 8 linii JS-a.

Jeśli w response nie ma nic, to w PHP zrób var_dump($_POST) i pokaż co to zwróci.

komentarz 3 listopada 2020 przez Jacuchna0 Użytkownik (640 p.)

Te 10 to id elementu który kliknąłem ale na stronie nic się nie pojawia

komentarz 3 listopada 2020 przez ScriptyChris Mędrzec (190,190 p.)

Response zwrócił oprócz tego 10 jeszcze znaczniki <style> i <skrypt>? A co jest w tej zmiennej data z callbacka przekazanego do metody $.post?

komentarz 3 listopada 2020 przez Jacuchna0 Użytkownik (640 p.)
Dokładnie to samo co w zakładce Response na zdjęciu wyżej
komentarz 3 listopada 2020 przez ScriptyChris Mędrzec (190,190 p.)

Hmm, nie wiem dlaczego PHP zwrócił taki dziwny wynik, skoro w echo dałeś tylko id z requesta. Może ktoś inny pomoże w tej kwestii.

W każdym razie, jeśli chcesz pokazać na stronie zwrotkę z Ajaxa, to musisz jej dane umieścić w DOM łapiąc jakiś element i ustawiając mu innerHTML lub textContent.

komentarz 3 listopada 2020 przez Jacuchna0 Użytkownik (640 p.)
głównie mi zależy żeby mieć wybraną wartość przez użytkownika w zmiennej php
komentarz 3 listopada 2020 przez Comandeer Guru (601,110 p.)
A co chcesz dokładnie z tym zrobić? W jakim celu tworzysz tę zmienną w PHP?

1 odpowiedź

0 głosów
odpowiedź 4 listopada 2020 przez Kerdi26 Użytkownik (640 p.)
Zakładając, że dobrze zrozumiałem o co chodzi. Jeśli po wysłaniu zapytania do pliku models/board.php przy pomocy Jquery, sprawdzasz w konsoli w zakładce network jego działanie poprzez kliknięcie na ten plik to on ci się otwiera w nowym oknie przeglądarki ale to jest już zupełnie nowe zapytanie, i w tym nowym zapytaniu nie ma żadnej zmiennej id wysłanej postem bo robisz to poprzez wpisanie adresu pliku board.php do przeglądarki.

Podobne pytania

0 głosów
1 odpowiedź 375 wizyt
pytanie zadane 29 października 2016 w C i C++ przez Ayaka Nowicjusz (170 p.)
0 głosów
1 odpowiedź 295 wizyt
0 głosów
1 odpowiedź 487 wizyt

92,565 zapytań

141,418 odpowiedzi

319,602 komentarzy

61,951 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...