Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V  < 1 2  
Reply to this topicStart new topic
> [JS/php] Automatyczne wypełnianie pól formularza.
darth_sidious
post
Post #21





Grupa: Zarejestrowani
Postów: 66
Pomógł: 1
Dołączył: 19.12.2005

Ostrzeżenie: (0%)
-----


Ok podmienilem AJAXA na Twoja wersje.
Czy zdarzenie podpinam prawidlowo?
  1. <br>Klient: <input type="text" id="zmienna" name="zmienna" onchange=Pokaz_zmienna(this)>
  2. <br>Miejscowosc: <input type="text" id="miasto" name="miasto" onchange=Pokaz_zmienna(this)>
  3. <br>Ulica: <input type="text" id="ulica" name="ulica" onchange=Pokaz_zmienna(this)>


Czy nie powinno byc tez cos zmienione w pliku pob.php? Wyszukujemy przy jego pomocy wartosci, w tym przypadku nazwe miasta dla wybranej firmy. A jak wyszukac NIP? Utworzyc blizniaczy plik tylka z
  1. <?php
  2. echo $row['nip'];
  3. ?>
na koncu?
Obecnie wyglada tak:
  1. <?php
  2. include 'polaczenie.inc';
  3. $pobierz_miasto = "select * from firmy where nazwa_dostawcy="$_POST[nazwa]"";
  4. $result = mysql_query($pobierz_miasto) or die (mysql_error());
  5. if (mysql_num_rows($result) > 0) {
  6. while($row = mysql_fetch_assoc($result)) {
  7. echo $row['miasto'];
  8. }
  9. }
  10. ?>


Ten post edytował darth_sidious 13.10.2006, 21:37:11
Go to the top of the page
+Quote Post
erix
post
Post #22





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Kod
y = obiekt.name;

advAJAX.post({
    url: "pob.php",
    parameters : {
      "nazwa" : x,
"typ" : y
    },
    onSuccess : function(obj) { document.formularz.zmienna.value = obj.responseText; },
    onError : function(obj) { alert("Error: " + obj.status); },
});

Sprawdzaj w skrypcie $_POST['typ'] i odpowiednio pobieraj dane. W tej wprowadzonej przeze mnie zmiennej będzie przypisana nazwa elementu formularza.
Go to the top of the page
+Quote Post
darth_sidious
post
Post #23





Grupa: Zarejestrowani
Postów: 66
Pomógł: 1
Dołączył: 19.12.2005

Ostrzeżenie: (0%)
-----


Zminilem to w pliku pob.php. Czy chodzili o cos takiego?
  1. <?php
  2. include 'polaczenie.inc';
  3. $pobierz_miasto = "select * from firmy where nazwa_dostawcy="$_POST[nazwa]"";
  4. $result = mysql_query($pobierz_miasto) or die (mysql_error());
  5. if (mysql_num_rows($result) > 0) {
  6. while($row = mysql_fetch_assoc($result)) {
  7. if ($_POST['typ'] == 'zmianna') {
  8. echo $row['nazwa_dostawcy'];
  9. }
  10. elseif ($_POST['typ'] == 'miasto') {
  11. echo $row['miasto'];
  12. }
  13. elseif ($_POST['typ'] == 'ulica') {
  14. echo $row['ulica'];
  15. }
  16. }
  17. }
  18. ?>


Jeszcze jedo pytanie. Czy nie powinno sie cos zmieniac w skrypcie w linii
  1. onSuccess : function(obj) { document.formularz.zmienna.value = obj.responseText; },

Tu caly czas jest wartosc 'zmienna', a przeciez pobieramy tez np, dane 'miasto'.

Dla pewnosci wkleje teraz caly kod ktory "wyszedl" po wszystkich przerobkach.
wprowadz_4.php
  1. <?php
  2. include 'naglowek.inc';
  3. include 'polaczenie.inc';
  4. ?>
  5.  
  6. <script type="text/javascript" src="advajax.js"></script>
  7. <script type="text/javascript">
  8. <!--
  9. function Pokaz_zmienna(obiekt) {
  10. var x = obiekt.value;
  11. var y = obiekt.name;
  12.  
  13. advAJAX.post({
  14. url: "pob.php",
  15. parameters : {
  16. "nazwa" : x,
  17. "typ" : y
  18. },
  19. onSuccess : function(obj) { document.formularz.zmienna.value = obj.responseText; },
  20. onError : function(obj) { alert("Error: " + obj.status); },
  21. });
  22.  
  23. }
  24. //-->
  25. </script>
  26.  
  27.  
  28.  
  29. <form action="wprowadz_4.php" method="post" name="formularz">
  30. <select name='firmy' onchange=Pokaz_zmienna('firmy')>
  31. <option>---WYBIERZ---</option>
  32. <?php
  33. $pobranie = "select * from firmy order by nazwa_dostawcy";
  34. $wynik_pobrania = mysql_query($pobranie) or die (mysql_error());
  35. $liczba_wierszy = mysql_num_rows($wynik_pobrania);
  36. for($i = 0; $i < $liczba_wierszy; $i++)
  37. {
  38. $wiersz = mysql_fetch_array($wynik_pobrania);
  39. echo "<option value='".$wiersz['nazwa_dostawcy']."'>".$wiersz['nazwa_dostawcy']."</option><br>";
  40. }
  41. ?>
  42. </select>
  43. <br>Klient: <input type="text" id="zmienna" name="zmienna" onchange=Pokaz_zmienna(this)>
  44. <br>Miejscowosc: <input type="text" id="miasto" name="miasto" onchange=Pokaz_zmienna(this)>
  45. <br>Ulica: <input type="text" id="ulica" name="ulica" onchange=Pokaz_zmienna(this)>
  46. </form>


pob.php
  1. <?php
  2. include 'polaczenie.inc';
  3. $pobierz_miasto = "select * from firmy where nazwa_dostawcy="$_POST[nazwa]"";
  4. $result = mysql_query($pobierz_miasto) or die (mysql_error());
  5. if (mysql_num_rows($result) > 0) {
  6. while($row = mysql_fetch_assoc($result)) {
  7. if ($_POST['typ'] == 'zmianna') {
  8. echo $row['nazwa_dostawcy'];
  9. }
  10. elseif ($_POST['typ'] == 'miasto') {
  11. echo $row['miasto'];
  12. }
  13. elseif ($_POST['typ'] == 'ulica') {
  14. echo $row['ulica'];
  15. }
  16. }
  17. }
  18. ?>


Ten post edytował darth_sidious 13.10.2006, 22:07:12
Go to the top of the page
+Quote Post
erix
post
Post #24





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Co do php, to dobrze kombinujesz (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Cytat
Kod
onSuccess : function(obj) { document.formularz.zmienna.value = obj.responseText; },

Kod
onSuccess : function(obj) { obiekt.value = obj.responseText; },
Go to the top of the page
+Quote Post
darth_sidious
post
Post #25





Grupa: Zarejestrowani
Postów: 66
Pomógł: 1
Dołączył: 19.12.2005

Ostrzeżenie: (0%)
-----


Niestety nic nie dziala (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Trace po malu nadziej, ze to kiedys sie uda... Nie wiem nawet gdzie tkwi blad. Nie wyswietlaja sie zadne kody bledow. NIC.
Druga opcja to zrobienie tego poprzez onChange=submit() w SELECT, ale takich SELECTow mam 3 (klient, dostawca, odbiorca) i kombinowanie z przekazywaniem zmiennych przez te formularze, odswiezaniem danych jeszcze bardziej mnie przeraza (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
A moze masz jakis pomysl jak jeszcze inaczej to rozwiazac. Pokrotce opisze (przypomne) co chcialbym otrzymac. Formularz, ktory jest tabela podzielony jest na 3 czesci: KLIENT, MIEJSCE ZALADUNKU, MIEJSCE ROZLADUNKU. Wszystkie, aby ulatwic sprawe z wprowadzaniem danych, odnosza sie poprzez wlasnie wybranie nazwy firmy z SELECTa do bazy danych, z ktorej pobieraja odpowiednie informacje i automatycznie uzupelniaja komorki formularza. Nastepnie uzytkownik przechodzi na kolejna strone, gdzie wszystkie dane sa wyswietlone w bardziej "fajerwerkowej" wersji, tzn ladnie ulozone w tabelce, co wazniejsze dane pogrubione, z obliczonymu kosztami za fracht, itp. I tu dopiero zatwierdza wszystko.
Dwa ostatnie formularze to wydaje mi sie prosta sprawa. Jak widzisz utknalem w pierwszym, a wiec wprowadzenie danych.
Moze widzisz rozwiazanie tego problemu inaczej - bylbym wdzieczny za kazda sugestie, bo mnie pomysly juz sie koncza (chyba nawet juz sie skonczyly).
Go to the top of the page
+Quote Post
Sabistik
post
Post #26


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


  1. onSuccess : function(obj) { document.formularz.zmienna.value = obj.responseText; },

tutaj musisz zrobic podobnie jak z tymi ifami w pob.php

A jak nie wiesz jak to ladnie upchac do jednej funkcji to zrob tych funkcji tyle ile masz tych selectow. Bo widze ze Tobie trzeba wszystko na tacy wykladac. Zrob kolejne funkcje do kolejnych selectow analogicznie do tej co Ci podalem ktora dzialala. Nie bedzie to profesjonalka napewno...
Go to the top of the page
+Quote Post
darth_sidious
post
Post #27





Grupa: Zarejestrowani
Postów: 66
Pomógł: 1
Dołączył: 19.12.2005

Ostrzeżenie: (0%)
-----


Wielkie dzieki! (IMG:http://forum.php.pl/style_emoticons/default/laugh.gif) Wreszcie dziala. Zrobilem jak sugerowal Sabistik, tzn stworzylem po jednej funkcji dla kazdego INPUTA. Po malu zaczynam lapac jak to dziala i sporobuje zmienic to tak aby dzialalo na zasadzie jednej tylko funkcji z roznymi zmiennymi... Ale poki bardzo Wam wszystkim dziekuje za pomoc.


Jest jednak cos czego nie rozumiem. Skrypty dzialaja tylko w Firefox'ie (1.5.0.7), nie dzialaja natomiast pod Opera (8.54) i IE (6). Obsluga JS wlaczona jest we wszystkich. Co zrobic, aby dzialaly we wszystkich 3 przegladarkach?


Pozdrawiam
Darth

Ten post edytował darth_sidious 15.10.2006, 10:27:56
Go to the top of the page
+Quote Post

2 Stron V  < 1 2
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.05.2026 - 10:36