Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> text w zależnosci od wybranej opcji
Lonas
post
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
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
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?
Go to the top of the page
+Quote Post
Lonas
post
Post #3





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

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


Oki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) sory jeszcze raz (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 559
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źć
Go to the top of the page
+Quote Post
Lonas
post
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
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 (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
Go to the top of the page
+Quote Post
Lonas
post
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 ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
revyag
post
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 (IMG:http://forum.php.pl/style_emoticons/default/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
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
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 (IMG:http://forum.php.pl/style_emoticons/default/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
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
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
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
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
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
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
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
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 (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
Go to the top of the page
+Quote Post
Lonas
post
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 (IMG:http://forum.php.pl/style_emoticons/default/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
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 19:03