Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> text w zależnosci od wybranej opcji
Lonas
post 17.11.2005, 12:30:40
Post #1





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

Ostrzeżenie: (20%)
X----


a takie pytanko, jak zrobić żeby po wybraniu kontrahenta automatycznie do pol pobraly sie jego dane.

mam taki select

  1. <?
  2. @$db = mysql_pconnect("localhost", "root");
  3. if (!$db)  
  4.     {     
  5.     print "wystąpił błąd w połączeniu";     
  6.     exit;  
  7.     }  
  8.  
  9. mysql_select_db("faktura"); 
  10.  
  11.  
  12. $query = "select nazwa from kontrahenci";
  13. $result = mysql_query($query); 
  14.  
  15.  
  16. echo "<select>";
  17. while($dane = mysql_fetch_array($result)){
  18.  echo "<option>$dane[0]</option>";
  19. }
  20. echo "</select>";
  21.  
  22.  
  23. ?>


Ten post edytował L.Pociask 17.11.2005, 12:31:12


--------------------
Go to the top of the page
+Quote Post
nospor
post 17.11.2005, 12:34:36
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




do jakich pol?

Czy ja zawsze musze was za jezyk ciągac? Czy nie można od razu podac pełnych info zeby bylo wiadomo oco wam chodzi?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Lonas
post 17.11.2005, 12:35:54
Post #3





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

Ostrzeżenie: (20%)
X----


Oki smile.gif sory jeszcze raz smile.gif

np wybieram sobie z select kontrahenta ( te dane są z bazy danych wyciagane ):

i chce żeby poniżej odrazu wyświetlały się jego dane.
czyli adres, nip i tak dalej smile.gif


--------------------
Go to the top of the page
+Quote Post
nospor
post 17.11.2005, 12:48:39
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




To musisz zachaczyć o js.
Najpierw w php pobierasz wszytkie niezbędne dane o kontrahencie. Dane te zapisujesz do js w tablicy i potem w zaleznosci co wybierze ktos z selecta, takie dane pokazujesz. Mozna tez inaczej. To jedna z mozliwosci.

No i znowu rozdziele te posty i przeniose na forum js, gdyż tam raczej powinno sie znaleźć


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Lonas
post 17.11.2005, 23:12:09
Post #5





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

Ostrzeżenie: (20%)
X----


Znalazłem tutaj coś takiego :


Kod
<script type="text/javascript">
function ins(s) {
   document.getElementById("t").value=s.options[s.selectedIndex].value;
}
</script>


  1. HTML
  2. <select id="s" name="s" onchange="ins(this)">
  3. <option value="1">a</option>
  4. <option value="2">b</option>
  5. <option value="3">c</option>
  6. <option value="4">d</option>
  7. <input type="text" id="t" name="t" />


jak mogę to odnieść do danych z bazy danych ?

Ten post edytował L.Pociask 17.11.2005, 23:21:25


--------------------
Go to the top of the page
+Quote Post
revyag
post 18.11.2005, 09:51:23
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


  1. <?php
  2. function ShowSel() {
  3. @$db = mysql_pconnect("localhost", "root");
  4. if (!$db)
  5. {  
  6. print "wystąpił błąd w połączeniu";  
  7. exit;
  8. }
  9. mysql_select_db("faktura"); 
  10. $query = "select nazwa from kontrahenci";
  11. $result = mysql_query($query); 
  12.  
  13. while($dane = mysql_fetch_array($result)){
  14.  echo '<option value="'$dane[0]'">'.$dane[0].'</option>';
  15. }
  16. }
  17.  
  18. ?>

Kod
<script type="text/javascript">
    function ins(s) {
        document.getElementById("t").value=s.options[s.selectedIndex].value;
    }
</script>

  1. <select id="s" name="s" onchange="ins(this)>
  2. <?php
  3. ShowSel();
  4. ?>
  5. </select><br /><br />
  6. <input type="text" id="t" name="t" />

Spróbuj tak snitch.gif


--------------------
-------------

------
Go to the top of the page
+Quote Post
Lonas
post 18.11.2005, 10:26:17
Post #7





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

Ostrzeżenie: (20%)
X----


A gdzie w kodzie jest wzmiana o tym jakie dane ma pobrać w zależności od kontrahenta ? smile.gif


--------------------
Go to the top of the page
+Quote Post
revyag
post 18.11.2005, 10:51:32
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


Aha, sory myslałe że o coś innego chodzi snitch.gif . Funkcje js wywalasz.
Przed formularzem dajesz kod:
  1. <?php
  2. if(!isset($_POST["hid"]) || empty($_POST["hid"])) {
  3. //
  4. $dane = "";
  5. } else {
  6. //pobieranie danych kontrahenta
  7. $dane = "aaa";
  8. }
  9. ?>

  1. <form action=" " method="post">
  2. <select id="s" name="s" onchange="document.getElementById('hid').value='submit';this.form.submit()">
  3. <?php ShowSel(); ?>
  4. </select><br /><br />
  5. <input id="hid" name="hid" type="hidden" value="" />
  6. <<span style='color:blue'>input type="text" id="t" name="t" value="<?php echo $dane; ?>" />
  7. </form>


Ten post edytował revyag 18.11.2005, 10:53:03


--------------------
-------------

------
Go to the top of the page
+Quote Post
Lonas
post 18.11.2005, 11:14:54
Post #9





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

Ostrzeżenie: (20%)
X----


Hm nie rozumiem, możesz mi coś takiego napisać na moim przykładzie ?

mam gotowego selecta w którym pojawiają się nazwy kontrahentów,
mam np w tej tabeli jeszcze adres, nip, miasto

Wybieram w select kontrahent tomek - pojawia mi się poniżej adres miasto nip

chyba że dać drugie zapytanie o reszte danych z tabeli kontrahent ?

Ten post edytował L.Pociask 18.11.2005, 11:17:16


--------------------
Go to the top of the page
+Quote Post
revyag
post 18.11.2005, 11:26:43
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


Myślałem że masz tylko kontrahentów. Przykład który podałem działa tak:
- wyświetla w select'cie kontrahentów
- po wybraniu, zapytanie do bazy o dane konkretnego kontrahenta
- wstawienie pobranych danych do inputa (ja pod $dane przypisałem "aaa" żeby pokazać działanie tego smile.gif,
Według mnie takie rozwiąznia jest lepsze, bo nie musisz pobierać całej tabeli.Pobierasz tylko kontrahentów, a potem dane konkretnego kontrahenta.


--------------------
-------------

------
Go to the top of the page
+Quote Post
Lonas
post 18.11.2005, 12:08:13
Post #11





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

Ostrzeżenie: (20%)
X----


a ja pod dane mam wstawić select z bazy ?

i jak mam adres miasto nip to wtedy daje czy $dane1, $dane2
itd ?


--------------------
Go to the top of the page
+Quote Post
revyag
post 18.11.2005, 12:17:49
Post #12





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


Tak, robisz selecta i wstawiasz dane w zmienna. To jak je sobie sformatujesz to Twoja sprawa. Może je wstawić po przecinku np.
  1. <?php
  2. $dane = $dane_z_bazy[3].','.$dane_z_bazy[4].','.dane_z_bazy[5];
  3. ?>


--------------------
-------------

------
Go to the top of the page
+Quote Post
Lonas
post 20.11.2005, 21:51:33
Post #13





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

Ostrzeżenie: (20%)
X----


utrzowylem plik ale nie dziala:


  1. <?
  2. @$db = mysql_pconnect("localhost", "root");
  3. if (!$db)
  4. {  
  5. print "wystąpił błąd w połączeniu";  
  6. exit;
  7. }
  8.  
  9. mysql_select_db("faktury"); 
  10.  
  11. if(!isset($_POST["hid"]) || empty($_POST["hid"])) {
  12. //
  13. $dane = "select nazwa from kontrahenci";
  14. } else {
  15. //pobieranie danych kontrahenta
  16. $dane = "select miasto from kontrahenci";
  17. }
  18. ?>
  19.  
  20. <html>
  21. <form action=" " method="post">
  22. <select id="s" name="s" onchange="document.getElementById('hid').value='submit';this.form.submit()">
  23. <?php ShowSel(); ?>
  24. </select><br /><br />
  25. <input id="hid" name="hid" type="hidden" value="" />
  26. <<span style='color:blue'>input type="text" id="t" name="t" value="<?php echo $dane; ?>" />
  27. </form>
  28. </html>


--------------------
Go to the top of the page
+Quote Post
revyag
post 21.11.2005, 11:14:52
Post #14





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


Ciekawe czemu nie działa...
Mam dziwne wrażenie że koledze brakuje podstaw obsługi bazydanych.
Kod przed formularzem:
  1. <?php
  2. @$db = mysql_pconnect("localhost", "root");
  3. if (!$db)
  4. {  
  5. print "wystąpił błąd w połączeniu";  
  6. exit;
  7. }
  8.  
  9. mysql_select_db("faktury"); 
  10.  
  11. if(isset($_POST["hid"]) || !empty($_POST["hid"])) {
  12. //pobieranie danych kontrahenta
  13. $res = mysql_query("select adres,nip,miasto from kontrahenci where nazwa='".$_POST["s"]."'");
  14. $dane = mysql_fetch_row($res);
  15. }
  16. ?>

Formularz:
  1. <input type="text" id="t" name="t" value="<?php echo $dane[0],',',$dane[1],',',$dane[2]; ?>" />


--------------------
-------------

------
Go to the top of the page
+Quote Post
Lonas
post 21.11.2005, 21:52:12
Post #15





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

Ostrzeżenie: (20%)
X----


dalej nie moge wymyslic, nie wiem co wpisac w

  1. <?php
  2.  
  3.  
  4. $res = mysql_query("select miasto from kontrahenci where nazwa='".$_POST["s"]."'");
  5. ?>


do czego odnosi się $_POST["s"]

dane są wyciągane ale w inpucie się nie odświeżają oto kod, prosze o pomoc bo już się gubie:
( narazie wyciagam tylko miasto jak podziala to bede dokladal zapytania)
  1. <?php
  2. @$db = mysql_pconnect("localhost", "root");
  3. if (!$db)  
  4.     {     
  5.     print "wystąpił błąd w połączeniu";     
  6.     exit;  
  7.     }  
  8.  
  9. mysql_select_db("faktury"); 
  10.  
  11.  
  12. $query = "select nazwa from kontrahenci";
  13. $result = mysql_query($query); 
  14.  
  15. echo "<select name=nowy>";
  16. while($dane = mysql_fetch_array($result)){
  17.  echo "<option>$dane[0]</option>";
  18. }
  19. echo "</select>";
  20.  
  21.  
  22.  
  23.  
  24. if(isset($_POST["hid"]) || !empty($_POST["hid"])) {
  25.  
  26.     $res = mysql_query("select miasto from kontrahenci where nazwa='".$_POST["s"]."'");
  27.     $dane = mysql_fetch_row($res);
  28. }
  29.  
  30.  
  31.  
  32. ?>
  33.  
  34. <input type="text" id="t" name="t" value="<?php echo $dane ?>" />


Ten post edytował L.Pociask 21.11.2005, 21:59:00


--------------------
Go to the top of the page
+Quote Post
gulldarek
post 21.11.2005, 23:16:40
Post #16





Grupa: Zarejestrowani
Postów: 156
Pomógł: 15
Dołączył: 13.09.2003
Skąd: London

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


  1. <script type="text/javascript">
  2. <!--
  3. function updateData(text)
  4. {
  5. var input = document.getElementById('t');
  6.  
  7. input.value = text;
  8. }
  9. -->
  10. </script>
  11.  
  12. <?
  13. @$db = mysql_pconnect("localhost", "root");
  14. if (!$db)
  15. {
  16. print "wystąpił błąd w połączeniu";
  17. }
  18.  
  19. mysql_select_db("faktury");
  20.  
  21. $query = "SELECT miasto, nazwa FROM kontrahenci";
  22. $result = mysql_query($query);
  23.  
  24. echo '<select name="nowy" onchange="updateData(this.value)">';
  25. while($dane = mysql_fetch_array($result))
  26. {
  27. echo '<option value="' . $dane[0] . '">' . $dane[1] . '</option>';
  28. }
  29. echo '</select>';
  30. ?>
  31.  
  32. <input type="text" id="t" name="t" value="" />


Spróbuj tak. Zapytanie pobierze nazwe kontrahenta i miasto.

Select bedzie wyglądał tak:

  1. <option value="Warszawa">Marek Jurek</option>
  2. <option value="Zabrze">Zdzislaw Kapusta</option>


itd. Po wybraniu odpowiedniej opcji z selecta w polu nizej wyswietli Ci sie miasto.
Go to the top of the page
+Quote Post
Lonas
post 22.11.2005, 10:15:44
Post #17





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

Ostrzeżenie: (20%)
X----


a gdybym teraz chciał dać 2 input z wartością NIP ?


--------------------
Go to the top of the page
+Quote Post
revyag
post 22.11.2005, 10:53:57
Post #18





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


Cały kod:
Na początku strony:
  1. <?php
  2.  
  3. $db = mysql_pconnect("localhost", "root");
  4. mysql_select_db("faktura"); 
  5. if (!$db) {  
  6. print "wystąpił błąd w połączeniu";  
  7. exit;
  8. }
  9. function ShowSel() {
  10. $result = mysql_query("select nazwa from kontrahenci"); 
  11. while($dane = mysql_fetch_array($result)){
  12.  echo '<option value="'.$dane[0].'">'.$dane[0].'</option>';
  13. }
  14. }
  15.  
  16. ?>

Przed formularzem:
  1. <?php
  2. if(isset($_POST["hid"]) && !empty($_POST["hid"]) && $_POST["hid"]!="--") {
  3. $res = mysql_query("select adres,nip,miasto from kontrahenci where nazwa='".$_POST["s"]."'");
  4. $dane = mysql_fetch_row($res);
  5. }
  6. ?>

Formularz:
  1. <form action=" " method="post">
  2. <select id="s" name="s" onchange="document.getElementById('hid').value='submit';this.form.submit()">
  3. <option value="--">--</option>
  4. <?php ShowSel(); ?>
  5. </select><br /><br />
  6. <input id="hid" name="hid" type="hidden" value="" />
  7. adres: <input type="text" id="t1" name="t1" value="<?php echo $dane[0]; ?>" /><br />
  8. nip: <input type="text" id="t2" name="t2" value="<?php echo $dane[1]; ?>" /><br />
  9. miasto: <input type="text" id="t3" name="t3" value="<?php echo $dane[2]; ?>" />
  10. </form>

Działa to tak:
1. Z bazy wyciągane są nazwy kontrahentów
2. Po wybraniu z listy rozwijanej konkretnego kontrahenta następuj zapytanie do bazy o jego dane. //$_POST["s"] to nazwa kontrahenta wybrana z listy
3. Dane wybranego kontrahenta wstawiane są w inputy.

----
A teraz zachęcam do zrobienia czegoś samemu, bo bez tego niczego się nie nauczysz snitch.gif


--------------------
-------------

------
Go to the top of the page
+Quote Post
Lonas
post 22.11.2005, 11:28:02
Post #19





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

Ostrzeżenie: (20%)
X----


Pięknie dziękuje, rozumiem działanie tego patrząc w kod, mialbym problem z napisaniem tego od podstaw, mam jeszcze jeden problemik, wszystko jest ok pozatym że w inputach pisze że jest niezdefiniowana zmienna dane sad.gif

probowalem tez tak w inpucie


  1. <?php
  2. stripslashes($dane["ulica"])
  3. ?>



ale tez wywala ze niezdefiniowana zmeinna dane

Ten post edytował L.Pociask 22.11.2005, 12:26:32


--------------------
Go to the top of the page
+Quote Post
revyag
post 22.11.2005, 12:42:11
Post #20





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


No zapomniałem dodać warunku jednego.
Po prostu trzeba wyzerować tablicę przy początkowym stanie.
Zmień kod przed formularzem na taki:
  1. <?php
  2.  
  3. if(isset($_POST["hid"]) && !empty($_POST["hid"]) && $_POST["hid"]!="--") {
  4. $res = mysql_query("select adres,nip,miasto from kontrahenci where nazwa='".$_POST["s"]."'");
  5. $dane = mysql_fetch_row($res);
  6. } else {
  7. $dane = array_fill(0,3," ");
  8. }
  9.  
  10. ?>


--------------------
-------------

------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 04:08