Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jakaśtam próba nawigacji, oczywiście nie działa
oximus
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 19.04.2005
Skąd: Tychy

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


Przedstawiam zlepek z książkowych wypocin:

  1. <?php
  2. if (isset($_POST['submit'])) {
  3. require_once ('mysql_connect.php');
  4. if (!empty($_POST[$row['Id']])) {
  5. $query = mysql_query(&#092;"SELECT Id, File FROM crossing where Id='$row['Id']'\");
  6. while (list($Id, $File) = mysql_fetch_row($query)){
  7. echo &#092;"wybrałeś, $File\";
  8.  
  9. }
  10. }
  11. }
  12.  
  13. ?>
  14.  
  15. <form action=\"<?php echo $_SERVER['PHP_SELF']; ?>\" method=\"POST\">
  16. <?php 
  17. require_once('mysql_connect.php');
  18. $zapytanie = mysql_query(&#092;"SELECT Id, Name FROM crossing\");
  19. ?>
  20. <select name=\"lista1\" onchange=\"submit()\">
  21. <option value =\"nic1\">Nazwa skrzyżowania / Crossing</option>
  22. <option value =\"nic2\">------------------------------------------------------------</option>
  23.  
  24. <?php
  25. while ($row = mysql_fetch_array($zapytanie))
  26. {
  27.    echo '<option value=\"'.$row['Id'].'\">'.$row['Name'].'</option>';
  28. }
  29. ?>
  30. </select>
  31.  
  32. </form>


Czy da się z listy wyboru pobranej z bazy, stworzyć kolejne zapytanie do bazy zależne od wybranej pozycji na liście i wyświetlić wynik?

Ten post edytował oximus 27.04.2005, 17:01:14
Go to the top of the page
+Quote Post
hwao
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Zalezy o ktore Ci query chodzi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Wstawiasz wlasna zmienna i pod nia wartosc jaka Ci trzeba dzieki temu mozesz "1" zapytaniem po zmianie zmienej rozne rzeczy "obsluzyc".

Prosze opisz dokladniej bo ja osobiscie niezbyt zrozumialem oco Ci chodzi
Go to the top of the page
+Quote Post
Rastman
post
Post #3





Grupa: Zarejestrowani
Postów: 177
Pomógł: 0
Dołączył: 6.06.2004

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


dokładnie, bo czy pierwsze zapytanie nie działa tak właśnie na zasadzie porównania?
co stoi na przeszkodzie stworzenia kolejnego ?
Go to the top of the page
+Quote Post
oximus
post
Post #4





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 19.04.2005
Skąd: Tychy

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


Chodzi o to, że jest sobie formularz z listą wyboru ładowaną z bazy. Po wyborze jakiejś pozycji z listy (bez przycisku submit) formularz się wysyła i tworzy się zapytanie zależne od opcji wybranej wcześniej na liście. Czyli wybieram jakieś skrzyżowanie i dostaję jakieś info o nim z kolumny obok np FILE.
Go to the top of the page
+Quote Post
jono
post
Post #5





Grupa: Zarejestrowani
Postów: 144
Pomógł: 0
Dołączył: 29.06.2003
Skąd: Wrocław

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


  1. <?php
  2. $zapytanie = &#092;"SELECT * FROM tabela WHERE nazwa='\".$_POST['lista1'].\"'\";
  3. $wykonaj = mysql_query ($zapytanie);
  4. ?>


chociażby.
Go to the top of the page
+Quote Post
oximus
post
Post #6





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 19.04.2005
Skąd: Tychy

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


OK, mam:
  1. <?php
  2. require_once ('mysql_connect.php');
  3.  
  4. if (isset($_GET['submit'])) {
  5.  
  6. $query = &#092;"SELECT Id, File, Loop_Count FROM crossing where Id='\".$_GET['lista1'].\"'\";
  7. $wynik=mysql_query($query);
  8. while (list($Id,$File,$Loop_Count)= mysql_fetch_row($wynik)){
  9.  
  10. echo $Id, $File, $Loop_Count;
  11.  
  12. }
  13. }
  14. ?>
  15.  
  16. <form action=\"<?php echo $_SERVER['PHP_SELF']; ?>\" method=\"GET\">
  17. <?php 
  18. require_once('mysql_connect.php');
  19. $zapytanie = mysql_query(&#092;"SELECT Id, Name FROM crossing\");
  20. ?>
  21. <select name=\"lista1\" onchange=\"submit()\">
  22. <option value =\"nic1\">Nazwa skrzyżowania / Crossing</option>
  23. <option value =\"nic2\">------------------------------------------------------------</option>
  24.  
  25. <?php
  26. while ($row = mysql_fetch_array($zapytanie))
  27. {
  28.  echo '<option value=\"'.$row['Id'].'\">'.$row['Name'].'</option>';
  29. }
  30. ?>
  31. </select>
  32.  
  33. </form>

Na belce explorera widoczne jest, ze wybiera costam:
*.php?lista1=506 wiec jakos dziala....natomiast nie wyswietla mi wyniku zapytania..stoi w miejscu. Mozliwe, ze nie zaladuje mi wyniku do strony z formularzem...slabo sie jeszcze na tym znam. Jak zrobic, zeby wyswietlil mi wynik w jakikolwiek sposob?
Go to the top of the page
+Quote Post
nospor
post
Post #7





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




Bo dajesz taki warunek:
if (isset($_GET['submit']))
on nie jest nigdy spełniony.
POwinien być:
if (isset($_GET['lista1']))
Go to the top of the page
+Quote Post
oximus
post
Post #8





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 19.04.2005
Skąd: Tychy

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


Ano tak, myslalem, ze zawsze ma byc submit, dzieki. A mam jeszcze jedno pytanie: Co zrobic by zostawal wybor na liscie ? Bo po wybraniu zeruje sie i znowu jest pierwsza pozycja..jakby caly czas bylo escape_data($_GET['lista1']) (czy jakos tak (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) a przeciez nie ma.
Go to the top of the page
+Quote Post
nospor
post
Post #9





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




  1. <?php
  2.  
  3. //.....
  4. echo '<option value=\"'.$row['Id'].'\" '.((isset($_GET['lista1']) && $row['Id']==$_GET['lista1'])?'checked':'').'>'.$row['Name'].'</option>';
  5. //.....
  6.  
  7. ?>
Go to the top of the page
+Quote Post
oximus
post
Post #10





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 19.04.2005
Skąd: Tychy

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


Kurcze, gdzie bym tego nie wsadził to nie działa. Rozumiem, że mam to wkleić po
//echo $Id, $File, $Loop_Count; ? czy do formularza?
Go to the top of the page
+Quote Post
nospor
post
Post #11





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




masz to wkleic zamiasta echo w którym opcje do lista1 wkladasz, czyli do drugiego while.
Pamiętaj: "zamiast" a nie "po"

edit: nie zauwazyles podobienstwa z inną linijką?

Ten post edytował nospor 28.04.2005, 09:07:31
Go to the top of the page
+Quote Post
oximus
post
Post #12





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 19.04.2005
Skąd: Tychy

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


Niestety, po wklejeniu zamiast
  1. <?php
  2. echo '<option value=\"'.$row['Id'].'\">'.$row['Name'].'</option>';
  3. ?>
kodu
  1. <?php
  2. echo '<option value=\"'.$row['Id'].'\" '.((isset($_GET['lista1']) && $row['Id']==$_GET['lista1'])?'checked':'').'>'.$row['Name'].'</option>';
  3. ?>
efekt nadal jest taki sam.
Go to the top of the page
+Quote Post
nospor
post
Post #13





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




sorki , pomylilem znaczniki. POwinno byc selected a nie checked:
  1. <?php
  2.  
  3. echo '<option value=\"'.$row['Id'].'\" '.((isset($_GET['lista1']) && $row['Id']==$_GET['lista1'])?'selected':'').'>'.$row['Name'].'</option>';
  4.  
  5. ?>
Go to the top of the page
+Quote Post
oximus
post
Post #14





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 19.04.2005
Skąd: Tychy

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


(IMG:http://forum.php.pl/style_emoticons/default/aaevil.gif) Works, dziekuję za pomoc...bardzo mi pomagasz.
Go to the top of the page
+Quote Post

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: 27.09.2025 - 16:31