Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][AJAX][PHP]Przesyłanie zmiennycg js->ajax->php->mysql i
Forum PHP.pl > Forum > Przedszkole
Jogas
Witam , to moj pierwszy post wiec prosze o wyrozumiałość ale liczę na podpowiedzi zaawansowanych uzytkowników.
Idea jest taka że mam kilka zmiennych w Javascripcie (ponizej tylko dwie ale docelowo wiecej)które chciałbym zapakować do mysql.
Oczywiscie próbowłąem z Ajaxem m.in w takim kodzie:
Kod
$(document).ready(function(){
    $("#wyslij").click(function () {
var name = "Aniela";
var lata=70;
  $.ajax({
               type:     "POST",
               url:     "k2.php",
               data:    {"imie":name,"wiek":lata},
               beforeSend: function(html){
                                $("#info").html("Laduje...<br />");        
                            },
               success: function(html){
                                $("#wynik_zapytania").html(html);        
                            },
               error:    function(html){
                                $("#info").html("Wystąpił bład");        
                            },
               complete:   function(html){
                                   $("#info").append("Żądanie zostało zakończone");        
                            }
             });
    });
      });

W powyższym kodzie wszystko dziala dobrze, k2.php też interpretuje dobrze poniezej skromna zawartosc:

<?php
print($_POST['imie']);
print($_POST['wiek']+23); // tu widac ze php otrzymuje zmienną, dodaje i zwraca poprawnie.
?>

Proszę o podpowiedz jak teraz dzialać na samych zmiennych $_POST['imie'],$_POST['wiek'], chciałbym swobodnie przypisywać je do zmiennych i np składać z nich zapyania sql.
Dlaczego wyswietlony plik k2.php w przegladarce nie wyswietla
print($_POST['imie']); a jedynie :Notice: Undefined index: imie

Wielkie Dzięki za choćby przeczytanie moich problemów z tym, niemniej proszę o cenne rady.
hondek
Jesteś pewien, że request wysyła się POST'em? nie trzeba w property $.ajax({}) dać method: 'post' ?

Sprwadź:

  1. print_r($_POST);
  2. print_r($_GET);
!*!
Czy to:
[JAVASCRIPT] pobierz, plaintext
  1. data: {"imie":name,"wiek":lata}
[JAVASCRIPT] pobierz, plaintext

Nie powinno być tak:
[JAVASCRIPT] pobierz, plaintext
  1. data: {name: "imie",lata: "wiek"}
[JAVASCRIPT] pobierz, plaintext


I tym sposobem wysyłasz post name, lata. http://api.jquery.com/jQuery.ajax/


Cytat
Dlaczego wyswietlony plik k2.php w przegladarce nie wyswietla

Ponieważ ich nie widzi. Zmienne post przesyłasz ajaxem.
Arcioch
Hondek przecież pisze, że wysyła poprawnie POSTa smile.gif Zresztą jest "type: "POST" smile.gif

Jogas smile.gif

Plik k2.php powinien wyświetlać się pusty, czyli wszystko jest jak najbardziej poprawnie smile.gif Wyrzuca notica ponieważ jak otworzysz plik przez przeglądarkę zmienne POSTowe nie istnieją smile.gif W pliku k2.php operujesz na zmiennych jak w normalnym pliku php smile.gif Daj sobie sprawdzenie czy dane istnieje post aby pozbyć się notica na początku i jak ktoś wejdzie na k2.php redirect na index albo coś w tym stylu smile.gif

  1.  
  2. <?php
  3. if($_POST){
  4.  
  5. $wiek = $_POST['wiek'];
  6. $imie = $_POST['imie'];
  7.  
  8. //i tu normalnie sobie robisz zapytania
  9. }else{
  10. //tu redirect
  11. }
  12. ?>
  13.  


Pamiętaj o odpowiednim zabezpieczeniu kodu smile.gif

Pozdrawiam
Arcio


!*!

Raczej są poprawnie ułożone dane w data do tego jak Jogas odbiera w php smile.gif
hondek
Jasne @Arcioch masz rację - moje przeoczenie, przepraszam!
Jogas
Dzięki Wielkie, pomogło!
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.