Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jakaśtam próba nawigacji
Forum PHP.pl > Forum > PHP
oximus
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?
hwao
Zalezy o ktore Ci query chodzi 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
Rastman
dokładnie, bo czy pierwsze zapytanie nie działa tak właśnie na zasadzie porównania?
co stoi na przeszkodzie stworzenia kolejnego ?
oximus
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.
jono
  1. <?php
  2. $zapytanie = &#092;"SELECT * FROM tabela WHERE nazwa='\".$_POST['lista1'].\"'\";
  3. $wykonaj = mysql_query ($zapytanie);
  4. ?>


chociażby.
oximus
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?
nospor
Bo dajesz taki warunek:
if (isset($_GET['submit']))
on nie jest nigdy spełniony.
POwinien być:
if (isset($_GET['lista1']))
oximus
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 smile.gif) a przeciez nie ma.
nospor
  1. <?php
  2.  
  3. //.....
  4. echo '<option value=\"'.$row['Id'].'\" '.((isset($_GET['lista1']) && $row['Id']==$_GET['lista1'])?'checked':'').'>'.$row['Name'].'</option>';
  5. //.....
  6.  
  7. ?>
oximus
Kurcze, gdzie bym tego nie wsadził to nie działa. Rozumiem, że mam to wkleić po
//echo $Id, $File, $Loop_Count; ? czy do formularza?
nospor
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ą?
oximus
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.
nospor
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. ?>
oximus
aaevil.gif Works, dziekuję za pomoc...bardzo mi pomagasz.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.