Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jquery] przesyłanie danych w GET
Forum PHP.pl > Forum > XML, AJAX > AJAX
dantekir
Czy ktoś wie może dlaczego nie działa mi poniższy skrypt?
To znaczy działa ale nie dokońca - chodzi o przesłanie danych z formularza GET-em do pliku savenew.php
Wypisywanie danych w allercie() działa natomiast gdy to prześle do pliku savenew.php wyświetla mi undefined
  1. <?php
  2. <script type="text/javascript">
  3.        function savenew(){
  4.        alert('wypisywanie w alercie działa!: '+$('#substance [@name=ulica1]').val());
  5.        $("#substance").html('cierpliwości... wczytuję dane... ');
  6.        $.ajax({
  7.                type: "GET",
  8.                url: "savenew.php",
  9.                data: {imie:'tak też działa',
  10.                    nazwisko:$("#substance [@name=nazwisko]").val(),
  11.                    ulica1:$("#substance [@name=ulica1]").val(),
  12.                    nrdom1:$('#substance [@name=nrdom1]').val(),
  13.                    nrlok1:$('#substance [@name=nrlok1]').val(),
  14.                    nrtel1:$('#substance [@name=nrtel1]').val(),
  15.                    email1:$('#substance [@name=email1]').val(),
  16.                    nip:$('#substance [@name=nip]').val(),
  17.                    pesel:$('#substance [@name=pesel]').val(),
  18.                    nrdowod:$('#substance [@name=nrdowod]').val()},
  19.                dataType: "html",
  20.                success: function(data) {
  21.                    $("#substance").html(data);
  22.                    }
  23.  
  24.        })}
  25. </script>
  26. ?>


Plik savenew.php:
  1. <?php
  2. $imie=$HTTP_GET_VARS['imie'];
  3. $nazwisko=$HTTP_GET_VARS['nazwisko'];
  4. $ulica1=$HTTP_GET_VARS['ulica1'];
  5. $nrdom1=$HTTP_GET_VARS['nrdom1'];
  6. $nrlok1=$HTTP_GET_VARS['nrlok1'];
  7. $nrtel1=$HTTP_GET_VARS['nrtel1'];
  8. $email1=$HTTP_GET_VARS['email1'];
  9. $nip=$HTTP_GET_VARS['nip'];
  10. $pesel=$HTTP_GET_VARS['pesel'];
  11. $nrdowod=$HTTP_GET_VARS['nrdowod'];
  12. print($imie." ".$nazwisko."  ".$ulica1." ".$nrdom1." ".$nrlok1." ".$nrtel1." ".$email1." ".$nip." ".$pesel." ".$nrdowod." ");
  13. ?>


zgłupiałem... pomocy smile.gif

...błagam... sugestie... cokolwiek... :/
erix
HTTP_GET_VARS się już od dawna nie używa... dry.gif

$_GET
dantekir
zależy jak serwer jest skonfigurowany, ale to nie rozwiązuje mojego problemu...sad.gif
dane są przesyłane gdy w skrypcie mam np tak:
  1. <?php
  2. //...
  3. imie:'tak też działa',
  4. //...
  5. ?>

ale tak:
  1. <?php
  2. //...
  3. ulica1: $('#substance [@name=ulica1]').val(),
  4. //...
  5. ?>

czy nawet tak:
  1. <?php
  2. //...
  3. nazwisko: $('#addnew #nazwisko').val(),
  4. //...
  5. ?>

nie działa sad.gif
choć odwołania są dobre - wypisuje mi w alercie to co wpiszę w formularzu...
wypisuje... tylko nie przesyła...
nie wiem dlaczego...
męcze ten "prosty" problem już trzecią godzinę :/
wódkę dam za rozwiązanie...
pomocy......
wookieb
Ja nie wiem czy ta @ może tam byc.
http://docs.jquery.com/Selectors

Zainstaluj firebuga, wyswietl $_GET i $_POST i zobacz czy dostajesz dane.
dantekir
Zrobiłem jak sugerowałeś.
Niestety czy POST czy GET parametry przyjmują wartość undefined
tak jakby nie zbierało tych danych z formularza
wydaje mi się że znaczenie tutaj ma fakt że sam formularz jest ładowany przy pomocy ajaxa.
Wrzuciłem skrypt do pliku z formularzem (wcześniej był w index) ale to nie pomogło.
Głównym podejrzanym elementem moim zdaniem będzie tutaj to: $.ajax({ ... ale nadal nie wiem jak to rozgryźć...


tak to na pewno będzie to... gdy wypisze w alercie dane z formularza to ich nie znajduje
  1. <?php
  2. //..........
  3.                success: function(data) {
  4.                    alert(' w alercie działa!: '+$('#nazwisko').val());
  5.                    $("#substance").html(data);
  6.                    }
  7. //..........
  8. ?>

jak odczytać dane z formularza gdy jest on załadowany na stronie przy pomocy ajax?
wookieb
A ja bym prosił o sprawdzenie selektorów. Wydaje mi się , że powinno być [name=nazwa] a nie [@name=nazwa]
dantekir
selektory to ja teraz uprościłem nawet do postaci:
$('#nazwisko').val()
w alercie przed $.ajax() wyświetla wartość z formularza natomiast wewnątrz $.ajax() przyjmuje undefined
erix
Wypuść gdzieś to publicznie.
dantekir
trochę dużo roboty by wszystko wrzucać na zewnętrzny serwer... (ale jeszcze dwie godziny się pomęczę i wrzucę winksmiley.jpg )
sprawa wygląda tak że ładuje się strona index
klikam na link 'dodaj nowy' i do div-a id=substance ładuje mi się formularz z którego nie mogę wyciągnąć danych przy pomocy ajax
czy ktoś może mi zdradzić co dokładnie oznacza ten zapis $.ajax({ ?

strona która ładuje się do div-a z formularzem wygląda tak:

  1. <script>
  2.  
  3.        function savenew(){
  4.        alert('wypisywanie w alercie działa!: '+$('#nazwisko').val());
  5.        $("#substance").html('cierpliwości... wczytuję dane... ');
  6.        $.ajax({
  7.                type: "POST",
  8.                url: "savenew.php",
  9.                data: {
  10.                    imie:'tak też działa',
  11.                    nazwisko: 'hhh '+$('#nazwisko').val(),
  12.                    ulica1: $('#substance [@name=ulica1]').val(),
  13.                    nrdom1: $('#substance [@name=nrdom1]').val(),
  14.                    nrlok1: $('#substance [@name=nrlok1]').val(),
  15.                    nrtel1: $('#substance [@name=nrtel1]').val(),
  16.                    email1: $('#substance [@name=email1]').val(),
  17.                    nip: $('#substance [@name=nip]').val(),
  18.                    pesel: $('#substance [@name=pesel]').val(),
  19.                    nrdowod: $('#substance [@name=nrdowod]').val()
  20.                },
  21.                dataType: "html",
  22.                success: function(data) {
  23.                    alert(' w tym alercie nie działa!: '+$('#nazwisko').val());
  24.                    $("#substance").html(data);
  25.                    }
  26.  
  27.        })}
  28. </script>
  29.  
  30. <h3>Dodajesz nową osobę </h3>
  31. <form id="addnew" >
  32.    <input type="hidden" name="typ" value="<?print ($typ);?>" />
  33.    <input type="text" name="imie" value="Wpisz imię" />
  34.    <input type="text" id=nazwisko value="Wpisz nazwisko" />
  35.    <br><br>
  36.    Adresy:
  37.    <br>
  38.    <input type="text" name="ulica1" value="Wpisz nazwę ulicy" />
  39.    <input type="text" name="nrdom1" value="Nr dom" /> / <input type="text" name="nrlok1" value="Nr lokal" />
  40.    <br><br>
  41.    Numery Telefonów:
  42.    <br>
  43.    <input type="text" name="nrtel1" value="Wpisz numer telefonu" />
  44.    <br><br>
  45.    Adresy Email:
  46.    <br>
  47.    <input type="text" name="email1" value="Wpisz adres email" />
  48.    <br><br>
  49.    <input type="text" name="nip" value="Wpisz NIP" />
  50.    <br>
  51.    <input type="text" name="pesel" value="Wpisz PESEL" />
  52.    <br>
  53.    <input type="text" name="nrdowod" value="Wpisz nr dowodu" />
  54.    <br><br>
  55.    <input type="button" value="Zapisz" name="save" onclick="savenew()"/>
  56.  
  57. </form>
erix
Nie bez powodu mówię, wrzuć na zewnętrzny - będzie łatwiej debugować, bo na pierwszy rzut oka niby jest ok.
dantekir
nie no na serwer zewnętrzny tego nie wrzucę teraz - napotkałem problem z importem bazy danych i jeszcze kilka innych do których musiałbym osobne wątki pisać tongue.gif
no masakra jakaś....
ayeo
Witam!

No tak, Tobie się nie chce wrzucić na serwer, a nam ma się chcieć debbugować Twój kod w głowie smile.gif Istne jaja biggrin.gif Nie wiem jak mam to skomentować nawet.

Pozdrawiam!
dantekir
chcieć nie chcieć nie o to chodzi tongue.gif chodzi o to że jak się za to zabiore to zajmnie mi to kilka godzin...
a co do problemu to rozwiązałem smile.gif
metodą z której nie jestem do końca zadowolony ale przynajmniej działa tongue.gif
  1. <?php
  2. function savenew(){
  3.        $imie=$('#substance #addnew [@name=imie]').val();
  4.        $nazwisko=$('#substance #addnew [@name=nazwisko]').val();
  5.        $ulica=$('#substance #addnew [@name=ulica1]').val();
  6.        $nrdom1=$('#substance #addnew [@name=nrdom1]').val();
  7.        $nrlok1=$('#substance #addnew [@name=nrlok1]').val();
  8.        $nrtel1=$('#substance #addnew [@name=nrtel1]').val();
  9.        $email1=$('#substance #addnew [@name=email1]').val();
  10.        $nip=$('#substance #addnew [@name=nip]').val();
  11.        $pesel=$('#substance #addnew [@name=pesel]').val();
  12.        $nrdowod=$('#substance #addnew [@name=nrdowod]').val();
  13.        $("#substance").html('cierpliwości... wczytuję dane... ');
  14.        $.ajax({
  15.                type: "GET",
  16.                url: "savenew.php",
  17.                data: {
  18.                    imie:$imie,
  19.                    nazwisko:$nazwisko,
  20.                    ulica1: $ulica,
  21.                    nrdom1: $nrdom1,
  22.                    nrlok1: $nrlok1,
  23.                    nrtel1: $nrtel1,
  24.                    email1: $email1,
  25.                    nip: $nip,
  26.                    pesel: $pesel,
  27.                    nrdowod: $nrdowod
  28.                },
  29.                dataType: "html",
  30.                success: function(data) {
  31.                    $("#substance").html(data);
  32.                    }
  33.  
  34.        })}
  35. ?>


Nie wiem dlaczego wcześniej nie wpadłem na pomysł przepisania tych zmiennych do wew. $.ajax() ...
Wszystko śmiga w każdym bądź razie smile.gif
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.