Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jquery] Problem z $.post wartości z formularza radio button
Forum PHP.pl > Forum > Przedszkole
mr.doom
Witam,


Próbuję przesłać sobie wartości z formularza typu radio do skryptu php i wyświetlić wynik tego, dynamicznie, w divie na stronie z której wysłałem POST przez jquery.Jednak w wyniku dostaję pustą wartość tablicy post ( skrypt myphpscript.php zwraca to w wyznaczonym divie ). Co robię źle, jak poprawnie przesłać wartość. Oto kod skryptu :




<script type="text/javascript">
$(document).ready(function(){
$("#searchform").submit(function(){

$.post('myphpscript.php',{value: $("[name='search']:checked").val()},function(data){

$("#db_window").html(data);
});



return false;

});

});
</script>






Oto formularz :
<form id="searchform" name="search" >



<input type="radio" name="search" value="1" /> <br>
<input type="radio" name="search" value="2" / > <br>
<input type="radio" name="search" value="3"/> <br>
<input type="radio" name="search" value="4" checked/> <br>


<input type="submit" name="search" >

</form>
Lombi
Zacznij od dopisania w form method="post"
mr.doom
To nic nie zmienia, ok, wstawiłem to, bo rzeczywiście sensownie żeby ta metoda tam była. Powinno działać i bez tego. Jeszcze jakieś sugestie ?
mls
[JAVASCRIPT] pobierz, plaintext
  1. $.post('myphpscript.php', { 'value': $("input[name='search']:checked").val() }, function (data) { /* ... */ });
[JAVASCRIPT] pobierz, plaintext
mr.doom
Bez zmian ;/;/
Gniję nad tym już 4 godzinę. ;/
Necsord
Jak / pod czym sprawdzasz czy to działa ? Firebug wypluwa jakiś błąd ? Skopiowałem kod z pierwszego post'a i działa.
mr.doom
OMG, to co napisałem w pierwszym poście ci działa ? firebug, nie wywala żadnych błędów, tyle, że gdy wyświetlam sobie to w #db_window divie wywala pustą tablicę post -.-



Dodam jeszcze, że ów skrypt jQuery odpalam w dokumencie html w którego div #db_window chcę uzyskać wynik skryptu po przesłaniu do niego $.post 'em wartości z tego formularza.
Necsord
Sprawdź w firebug'u czy wysyłany jest value i co zwraca myphpscript.php. Nie polegaj na swoim skrypcie tylko na tym co wypluwa firebug.
mr.doom
Ok, Firebug mówi że post zawiera NULL, wiesz dlaczego tak się dzieje ?
Może problem leży w formularzu questionmark.gif
Necsord
POST nie może zawierać null'a, co najwyżej zmienna value w POST jest null.
http://jsfiddle.net/chU88/
Sprawdź, porównaj. Może coś zmieniłeś.
mr.doom
Nie wiem co jest grane, gdy robię POST w normalny sposób action="myphpscript.php" wszystko jest w porządku. Zmienna przechodzi i nie jest NULL'em. Tutaj wypluwa mi w #db_window nulla ;/ U Ciebie to działa ?
Necsord
Jeżeli zmienna data jest pusta to błąd leży po stronie skryptu php. Mam wrażenie ze ty oczekujesz w data to co wysyłasz, a tam dostajesz to co wraca czyli to co wypluwa myphpscript.php. Zrób sobie test, zakomentuj wszystko w myphpscript.php i zrob samo.

  1. <?php
  2. exit('OK');
  3. ?>
mr.doom
W odpowiedzi dostaję " OK "
Necsord
Czyli szukaj błędu w myphpscript.php bo nic nie zwraca...
mr.doom
Nie no zwraca, gdybym dał inną nazwę w $.post zamiast value, a w myphpscript oczekiwał nadal value, to wywali błąd, skrypt dostaje post ale o wartości NULL gdzie w formularzu są podane value dla każdego zaznaczonego radiobutton'a
Necsord
NULL jest bo skrypt nic nie ZWRACA. Zwróć uwage na różnicę między ZWRACA a OTRZYMUJE. Zwracanie to jest np. echo, exit.
mr.doom
No to jakieś sugestie, jak odebrać tą zmienną w skrypcie i po prostu ją wyświetlić do tego diva?
Necsord
  1. <?php
  2. exit($_POST['value']);
  3. ?>

smile.gif
mls
Cytat(mr.doom @ 28.01.2012, 16:15:05 ) *
Bez zmian ;/;/
Gniję nad tym już 4 godzinę. ;/


Chyba nie wprowadziłeś proponowanych zmian. Nie działa Ci, bo nie słuchasz uwag.
http://jsfiddle.net/S3gQ2/
mr.doom
Super, próbowałem, tak samo jak próbowałem post przypisać do zmiennej i ją wyświetlić, zawsze w wyniku dostaję NULL zawsze.
mls
Pokaż aktualną wersję kodu, z uwzględnieniem proponowanych tutaj zmian, która nie działa.
mr.doom
Proszę :


Skrypt php którym chcę wyświetlić zmienną :


<?php


echo $_POST['value']

?>


skrypt js/jquery


<script type="text/javascript">
$(document).ready(function(){
$("#searchform").submit(function(){

$.post('myphpscript.php',{value: $("[name='search']:checked").val()},function(data){

$("#db_window").html(data);
});



return false;

});

});
</script>



formularz HTML

<form id="searchform" action="post" name="searchform" >



<input type="radio" name="search" value="1" /> Autor<br>
<input type="radio" name="search" value="2" / > Tytuł<br>
<input type="radio" name="search" value="3"/> Haslo<br>
<input type="radio" name="search" value='4' /> ISBN<br>


<input type="submit" name="search" id="searchform" >

</form>







Po uwzględnieniu poprawek z postu bodajże drugiego działa tak samo. Wybaczcie że wklejam tutaj i w takiej formie



mls
Po pierwsze - używaj bbcode w postach z kodem.
Po drugie - nie widzę w tym kodzie zmian które proponowałem w http://forum.php.pl/index.php?s=&showt...st&p=935080
mr.doom
No tak ale zupełnie pominąłeś rolę skryptu php do którego przekazywany jest POST, mam rozumieć że uwzględnienie dodania zmiennej v którą dorzuciłeś i wrzucenie tego w miejsce
{value: $("[name='search']:checked").val()} ma rozwiązać problem POST['value'] o wartości null ?

Ktoś wie dlaczego to nie działa ?
wookieb
Prosze wstawić bbcode we wszystkich swoich postach albo zamknę temat.
Następnym razem założ tylko 1 (słownie jeden) temat.
mls
Cytat(mr.doom @ 28.01.2012, 19:16:56 ) *
No tak ale zupełnie pominąłeś rolę skryptu php do którego przekazywany jest POST, mam rozumieć że uwzględnienie dodania zmiennej v którą dorzuciłeś i wrzucenie tego w miejsce
{value: $("[name='search']:checked").val()} ma rozwiązać problem POST['value'] o wartości null ?


Gdzie w http://forum.php.pl/index.php?showtopic=19...mp;#entry935080 jest jakaś zmienna "v"?

Cytat( @ 28.01.2012, 19:16:56 )
Ktoś wie dlaczego to nie działa ?


Bo nie myślisz i nie słuchasz uwag innych.
I tyle ode mnie w tym temacie. Nie będę sie do aż takiego poziomu zniżał...
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.