Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: AJAX $.POST - pusta zmienna
Forum PHP.pl > Forum > Po stronie przeglądarki
Slide
Cześć.

Mam problem z wysyłaniem zmiennej przez AJAX. Mianowicie mam skrypt w PHP, w kórym znajduje się przycisk, a dokładniej:
  1. echo "<button class='usun' name=".$row['id'].">usun</button>";


Jak widać nazwą tego buttona jest wartość zczytana z tablicy. Wartość ta na pewno nie jest pusta, bo to sprawdziłem.
Chciałbym wysyłać wartość pola name do formularza PHP. Mam więc skrypt w jQuery który tę wartość odczytuje i następnie powinien do takowego skryptu wysłać.

  1. $("document").ready(function(){
  2. $("button.usun").on("click", function(event){
  3. event.preventDefault();
  4. $( "#dialog-confirm" ).dialog({
  5. autoOpen: false,
  6. height: 400,
  7. width: 500,
  8. modal: true,
  9. buttons: {
  10. Usuń: function() {
  11. $( this ).dialog( "close" );
  12. var id = $( event.target ).attr("name");
  13. $.ajax({
  14. type: "POST",
  15. data: id,
  16. URL: "delete/gallery.php",
  17. success: function(msg){
  18. document.location.href = "delete/gallery.php"
  19. }
  20. });
  21. },
  22. Anuluj: function() {
  23. $( this ).dialog( "close" );
  24. }
  25. }
  26. });
  27. $( "#dialog-confirm" ).dialog( "open" );
  28. });
  29. });


No własnie.. powinien. Jednak coś musiałem sknocić i wartość ta wysłana nie zostaje. Jeśli zamiast $.ajax dam zwykłe alert (id), to wszystko jest w porządku i poprawna wartość zostaje wyświetlona. Jeśli jednak chcę ją wyświetlić za pomocą PHP, okazuje się, że skrypt nic nie dostaje, albo przynajmniej twierdzi że nic nie dostał. Oto zawartość pliku "delete/gallery.php"

  1. <?php
  2. $id = $_POST['id'];
  3. if (empty($id)) {
  4. echo "pusta zmienna!";
  5. } else {
  6. echo $id;
  7. }
  8. ?>


Proszę o pomoc. Zapewne coś robię źle, ale myśle że po to na forum jesteśmy żeby sobie pomagać. Przynajmniej staram się czegoś nauczyć zamiast siedzieć z piwem w ręku smile.gif

Pozdrawiam.
SmokAnalog
Dane powinny być wysłane jako obiekt, czyli zamiast:
[JAVASCRIPT] pobierz, plaintext
  1. data: id,
[JAVASCRIPT] pobierz, plaintext

Powinno być:
[JAVASCRIPT] pobierz, plaintext
  1. data: {id: id},
[JAVASCRIPT] pobierz, plaintext

Wtedy tę wartość masz w $_POST['id'].
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.