![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 27.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam sobie: Kod append("<input type='text' value='' />"); i teraz chciałbym aby z poziomu javascriptu użyć klasy w php, która coś tam zwraca i wrzuca do value. Czy jest to w ogole możliwe? Jak to ugryźć?Próbowałem Kod append("<input type='text' value='<?php $view= new dbRecords(); echo $view->getPosition(); ?>' />");
Ten post edytował devurien 23.02.2010, 09:34:22 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 603 Pomógł: 131 Dołączył: 24.07.2007 Skąd: Górny Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Musisz użyć ajaxu. Dokumentacja jquery ajax.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 27.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ok świetnie, ale co jeśli - tu się będę posiłkować kodem:
Pola są generowane w pętli. Name inputa/selecta - dobierane automatycznie. Nie udaje mi się odpytać zewnętrznego skryptu i podstawić wartości do pola value. Jakieś wskazówki Panowie? Ten post edytował devurien 23.02.2010, 15:31:20 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 603 Pomógł: 131 Dołączył: 24.07.2007 Skąd: Górny Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Nie wpisuje, bo do getData przypisujesz odwołanie do elementu div. Do funkcji load przekaż także funkcję:
Kod function(odp){ w odp będziesz miał swoją wartość zwróconą przez ajaxa. Tu wklej sobie kod z appendem } PS. o ile widze a jest zawsze rowne i+1, może więc wyrzuć to a i zastąp je i+1. Ten post edytował lord_t 23.02.2010, 15:36:43 -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 27.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
lord_t dziękuje Ci za poświęcony czas nie mniej Googlowałem troszkę i widzę, że load() bywa zawsze przypisany do jakiegoś div'a hm, a ja nie umiem jeszcze inaczej niż szablonowo myśleć..
Wyszedł mi takowy dziwoląg - po twoich sugestiach lecz chyba źle je interpretuję: Kod for (var i=0; i < selectedVar; i++){ var targetUrl = "test2.php?number="+i+; var getData = load(targetUrl, function(odp) { $("div#wklej").append("<p><label>"+i+1+"st:</label> <select name='p200_1_"+i+"a'><option>0</option</select><br /> <label>"+a+"st:</label> <input type='text'name='p200_"+i+"b' value="+odp+"/></p>"); }); } --EDIT: tutaj podaje Cały listing: http://wklej.to/DQrM Ten post edytował devurien 25.02.2010, 10:06:10 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 603 Pomógł: 131 Dołączył: 24.07.2007 Skąd: Górny Śląsk Ostrzeżenie: (0%) ![]() ![]() |
I bardzo dobrze kombinujesz. Fakt, load() musi być do czegoś przypisany, ale get() nie (loadem to się też da załatwić, ale nie chce mi się pisać jak) i zrobimy to getem:zamiast słowa load użyj po prostu get a tą część: var getData = usuń i powinno banglać.
Na 99% pojawi się niestety kolejny problem związany ze zmienną i - wszędzie będzie mieć wartość z ostatniej pętli. Powinna Ci pomóc tak napisana funkcja: Kod function(odp) {
var j=i; $("div#wklej").append("<p><label>"+j+1+"st:</label> <select name='p200_1_"+j+"a'><option>0</option</select><br /> <label>"+j+1+"st:</label> <input type='text'name='p200_"+j+"b' value="+odp+"/></p>"); } Ten post edytował lord_t 25.02.2010, 10:47:32 -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 27.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
jest dokładnie tak jak przewidziałeś pojawił się problem ze zmienną i. Niestety zabieg var i=j; nie przynosi skutku, również problem wystąpił przy +odp+ - wartość ta wskazuje cały czas ostatni rekord. Próbowałem się z tym sam pomęczyć coby nie nadużywać hojności w pomocy. Nie mniej moje doczytywania i szperania po google nie były owocne - niestety nic mądrego nie wniosły. test.php Kod <html> <head> <TITLE></TITLE> <script src="files/js/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("select").change(function () { var selectedVar = $('option:selected', $(this)).text(); var selectName = $(this).attr("id"); if(selectName == 's1') { for (var i=0; i < selectedVar; i++){ $("#wklej").children("p").remove(); } for (var i=0; i < selectedVar; i++){ var targetUrl = "test2.php?number="+i; $.get(targetUrl, function(odp) { var j=i; $("#wklej").append("<p>"+j+1+"<input type='text' name='p200_"+j+"b' value='"+odp+"' /></p>"); }); } return false; }else if(selectName == 'Please select') { for (var i=0; i < selectedVar; i++){ $("#wklej").children("p").remove(); } } }); }); </script> </head> <body> <form method="get" action="test.php" > <select name="s1" id="s1"> <option>Please select</option> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <inpu type="submit" value="OK" /> </select> </form> <div id="wklej"></div> </body> </html>
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 603 Pomógł: 131 Dołączył: 24.07.2007 Skąd: Górny Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Znalazłem!!! Ale jestem bardzo zły na autora nowej wersji dokumentacji jQuery
![]() Przeczytaj tego mojego posta (http://forum.php.pl/index.php?showtopic=12...mp;#entry604661) i zobacz jak wewnątrz ajaxa jest zdefiniowana zmienna zm i jak jest wykorzystana w success(). Zrób podobnie dla zmiennej i, dla odp tak nie rób - niestety nie mam pewności czy zabieg z i to pomoże w odp, ale bardzo możliwe, że tak. Musisz spróbować, nieuniknione będzie też chyba przejście na $.ajax() ze zwykłego $.get(). -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 18:41 |