Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]Jak przekazac * GWIAZDKĘ czyli wszsytko z formularza
Forum PHP.pl > Forum > Przedszkole
palixmp
Mam banalne pytanie:) Jak zrobić żeby z formularza przekazać * (gwiazdkę) czyli wszystko??
mam taki kod:
  1. <SELECT NAME="Stan">
  2. <OPTION> Wszystko
  3. <OPTION> N
  4. <OPTION> Z
  5. <OPTION> O

I teraz jak nadać wartość gwiazdki zmiennej Stan? Wpisałem cos takiego:
  1. <?php
  2. if($_POST['Stan']=='Wszystko')
  3. {
  4. $Stan='*';
  5. }
  6. else
  7. {
  8. $Stan = $_POST['Stan'];
  9. }
  10. ?>

Ale niestety nie działa:( Dodam ze pozostale wartości formularza przekazuja sie prawidlowo, wiec jest dobrze, tylko tej części nie umime:(
Pomógl by ktos??

Z góry dzieki:)
webdice
Nie wiem czy Cię dobrze zrozumiałem.

  1. <option value="*">Wszystko</option>


Poza tym jeśli otwierasz jakiś tag, to go musisz zamknąć.
palixmp
Dałem coś takiego:
  1. <SELECT NAME="Stan">
  2. <OPTION value="*">Wszystko</OPTION>
  3. <OPTION> N </OPTION>
  4. <OPTION> Z </OPTION>
  5. <OPTION> O </OPTION>


a przed zapytaniem zamiast tej pętli:
  1. <?php
  2. $Stan = $_POST['Stan'];
  3. ?>


I mi rozwaliło strone:( nic sie nie wyświetla:( Znaczy się ten błąd, jakby składnia była źle, gdzie poprawic??

A jak dałem tak:
  1. <?php
  2. <SELECT NAME="Stan">
  3. <OPTION value="*">Wszystko
  4. <OPTION> N
  5. <OPTION> Z
  6. <OPTION> O
  7. </SELECT>
  8. ?>

To nie wywala blędu tylko po prostu wynik jest pusty sad.gif Ale stronka dzialą. Tylko ze bez odpowiedniego wyniku oczywiście hihi
webdice
Jak błąd? Wklej treść błędu i więcej kodu.
palixmp
Cały kod:
  1. lacz_moje();
  2.  
  3. if (isset($_POST['OD'])):
  4. $OD = $_POST['OD'];
  5. $DO = $_POST['DO'];
  6. $NazwaOdbiorcy = $_POST['NazwaOdbiorcy'];
  7.  
  8. $Stan = $_POST['Stan'];
  9.  
  10. //poczatek wyświetlania tabeli
  11.  
  12. lacz_moje();
  13. echo "oto lista wszystki zamówień <br>";
  14. $result=@mysql_query("SELECT IDZam, NazwaOdbiorcy, DataZamowienia, StanRealizacji FROM ZAMOWIENIE
     WHERE StanRealizacji='$Stan' AND NazwaOdbiorcy='$NazwaOdbiorcy' AND (DataZamowienia BETWEEN '$OD' AND '$DO')");
  15. if (!$result) {
  16. exit ('blad podcczas wykonywania zapytaniaaa : ' . mysql_error() . '</p>');
  17. }
  18.  
  19.  
  20. echo '<table border=0><tr bgcolor="#98CD97"><td><B><font color=#FFFFFF>&nbsp;IDZam&nbsp;</td>
  21. <td><B><font color=#FFFFFF>&nbsp;NazwaOdbiorcy &nbsp;&nbsp;&nbsp;</td>
  22. <td><B><font color=#FFFFFF>&nbsp;DataZamowienia &nbsp;&nbsp;&nbsp;</td>
  23. <td><B><font color=#FFFFFF>&nbsp;StanRealizacji &nbsp;&nbsp;&nbsp;</td>
  24. <td><B><font color=#FFFFFF>&nbsp;Pokaz szczegóły &nbsp;&nbsp;&nbsp;</td>
  25. </tr>' ;
  26.  
  27.  
  28. $i = 0;
  29.  
  30. while ($row = mysql_fetch_array($result)) {
  31. $color = ($i % 2) ? '#99CCCD' : '#96BCBD';
  32. echo '<tr style="background-color:'.$color.'"><td bgcolor="#98CD97"><font color=#006766>&nbsp;'.$row['IDZam'] . '</td>';
  33. echo '<td><font color=#006766>&nbsp;' .$row['NazwaOdbiorcy'] . ' </td> ';
  34. echo '<td><font color=#006766>&nbsp;' .$row['DataZamowienia'] . ' </td> ';
  35. echo '<td><font color=#006766>&nbsp;' .$row['StanRealizacji'] . ' </td> ';
  36. echo '<td>&nbsp;&nbsp;<a href="pokaz_zamowienie.php5?IDz='.$row['IDZam'].'">szczegóły</a>&nbsp;&nbsp;</td></tr> ';
  37. ;
  38. $i++; 
  39. }
  40. echo '</table>';
  41.  
  42.  
  43. //koniec wysietlania tabeli
  44.  
  45.  
  46. else:
  47.  
  48. $rezultat2 = @mysql_query('SELECT NazwaOdbiorcy FROM ODBIORCY');
  49. if (!$rezultat2) {
  50. exit(
  51. '<p>Nie mozna pobrac listy Artykulówwydanych z bazy danych.</p>');
  52.  
  53. kalendarz();
  54.  
  55. ?>
  56. <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
  57.  
  58. <table width=440 height=50 cellpadding=0 cellspacing=0>
  59. <tr><td colspan=2>Wyszukiwanie według kryteriów :</td></tr>
  60. <tr><td><font color="#005B66" size=2>OD :</td><td bgcolor="#99CCCD" height=30>&nbsp;&nbsp;<input type=text name="OD" size=30 value="<?php echo date('Y-m-d') ?>" onClick="showKal(this)"></td></tr>
  61. <tr><td height=1 bgcolor="#99CCCD"></td><td></td></tr>
  62. <tr><td>DO:</td><td bgcolor=#99CCCD height=30>&nbsp;&nbsp;<input type=text name="DO" size=30 value="<?php echo date('Y-m-d'); ?>" onClick="showKal(this)"></td></tr>
  63. <tr><td height=1 bgcolor="#99CCCD"></td><td></td></tr>
  64.  
  65. <tr><td>Nazwa Odbiorcy:</td><td bgcolor="#99CCCD" height=30>&nbsp;&nbsp;
  66. <select name="NazwaOdbiorcy" size=1 title="Wybierz">
  67. <option value="">
  68. <?php
  69.  
  70. while ($ODBIORCY = mysql_fetch_array($rezultat2)) {
  71. $aname1 = htmlspecialchars($ODBIORCY['NazwaOdbiorcy']);
  72.  
  73. echo "<option value='$aname1'>$aname1</option>\n";
  74. }
  75. ?>
  76. </option></select></td></tr>
  77. <tr><td height=1 bgcolor="#99CCCD"></td><td></td></tr>
  78. <tr><td>Stan realizacji:</td><td bgcolor="#99CCCD" height=30>&nbsp;&nbsp;
  79. <SELECT NAME="Stan">
  80. <OPTION value="*">Wszystko
  81. <OPTION> N
  82. <OPTION> Z
  83. <OPTION> O
  84. </SELECT>
  85. </td></tr>
  86.  
  87. <tr><td height=1 bgcolor="#99CCCD"></td><td></td></tr>
  88.  
  89.  
  90. <tr><td colspan=2 align=right><input type=submit value="Wyszukaj"></td></tr>
  91. </table>
  92. </form>
  93.  
  94. <?php endif; ?>
webdice
Po pierwsze, co to niby jest?

  1. <?php
  2. if (isset($_POST['OD'])):
  3. ?>


Gdzie są klamry? Po drugie podaj treść błędu.
palixmp
if (isset($_POST['OD'])): to jest, jesli wybiorę przedzial dat(a zawsze jest to podawane) to w tedy cośtam:) Datę pobieram ze skryptu kalendarza.

Generalnie wszystko dziala, nawet to z wyborem N, Z, O, tylko jak nadac wartość tej * questionmark.gif A teraz juz sie bląd nie pojawia tylko po prostu wynik w tabeli jest pusty, znaczy sie niema zadnego wyniku, jak sie wybierze WSZYSTKO. Natomiast jak sie wybierze N, Z, O to jest poprawny wynik, wiec wszystko chodzi dobrze, oprócz tego nadawania *.
wookieb
Kod
<?php
print_r($_POST);
?>


<form action="test1.php" method="post">

<select name="send">
<option value="*">Wszystko</a>
<option value="N">N</option>
<option value="Z">Z</option>
</select>
<input type="submit" value="go" />
</form>

Przecież wysyła *.

Kod
        if (isset($_POST['OD'])):

Coś tam to się naucz kodować i poprawnej terminologii bo nie można cię zrozumieć.
Której tabeli? W bazie danych? Na stronie? Mów JASNO.
pyro
ja tam w twoim kodzie widze wiele błędów...:

if (isset($_POST['OD'])):
else:
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">

pomijam juz braki cudzyslowow/apostrofow w HTML'u i paru innych drobnych rzeczy


Cytat(webdicepl @ 26.08.2008, 23:01:22 ) *
Nie wiem czy Cię dobrze zrozumiałem.

  1. <option value="*">Wszystko</option>


Poza tym jeśli otwierasz jakiś tag, to go musisz zamknąć.


Akurat przy <option> nie jest to wymagane smile.gif
palixmp
Dobra już wiem gdzie mam błąd:) Bład mam w zapytaniu SQL:
  1. SELECT IDZam, NazwaOdbiorcy, DataZamowienia, StanRealizacji FROM ZAMOWIENIE WHERE StanRealizacji='$Stan'


Jak zrobić żeby jak wybiore opcje WSZYSTKO żeby mi pokazał wszsytkie rekordy? Bo jak wybiore np N, to pokaze mi wszystkie rokordy z N, ale jak wybiore opcję WSZYSTKo to chcialbym zeby mi pokazał wszystkie rekordy z N, Z i O?? Jest jakaś wartośc która wyświetla wszystko?? Chodzi mi o fragment WHERE StanRealizacji='$Stan' .
KCG
  1. <?php
  2. $sql = '... WHERE ';
  3. if ($Stan == '*')
  4. $sql .= 'stan='N' OR stan='Z' OR stan='O'';
  5. else
  6. $sql .= 'stan=''.$Stan.''';
  7. ?>

Mam nadzieję, że sobie dobrze uzupełnisz smile.gif
palixmp
O kurcze, teraz mnie zabiłes tym kodem:) Tak nadmienię że jesteśmy w dziale przedszkole:) I niestety niewiem w ogóle gdzie to wstawic?? Prosze o pomoc smile.gif
wookieb
Przy zapytaniu wybierającym twoje rekordy.
tomekpl
Jakmasz polecenie option, to jakos raczej musisz nazwać wszystkie po kolei jakie maja być np:

<option value="konstrukcje">Konstrukcje</option>
bmL
Jeżeli chcesz pobrac wszystko:
  1. <?php
  2. if($stan != '*')
  3. mysql_query("SELECT IDZam, NazwaOdbiorcy, DataZamowienia, StanRealizacji FROM ZAMOWIENIE
     WHERE StanRealizacji='$Stan'"
    ;
  4. else
  5. mysql_query("SELECT IDZam, NazwaOdbiorcy, DataZamowienia, StanRealizacji FROM ZAMOWIENIE
     WHERE StanRealizacji='N' OR StanRealizacji='Z' OR StanRealizacji='O' "
    ;
  6. ?>

Tak na marginesie poważnie zaniepokoiło mnie to, ze skrypt działa ci jezeli wybierzesz N, Z albo O bo nie nadałeś żadnej zawartości dla pól option... nawet jeżeli działa to pod jedną przeglądarką to wątpię aby działało na wszystkich.
  1. <option value="wartosc_przekazana_do_skryptu">Zawartosc wyswietlana uzytkownikowi</option>

Czyli jeżeli użytkownik wybierze pole oznaczone "Zawartosc wyswietlana uzytkownikowi" to w php zmienna $_POST będzie zawierała: "wartosc_przekazana_do_skryptu".
golaod
Odkopie trochę. Przede wszystkimi to po jaki grzyb ograniczacie wyniki ?
  1. <?php
  2. if($stan == '*')
  3.  $sql = '';
  4. else
  5.  $sql = "WHERE StanRealizacji = '$stan'";
  6. ?>

Po drugie ktoś tam pisał, że nie musi być zamknięte option. Pewnie, że nie... nie trzeba też pisać name="nazwa" wystarczy name=nazwa BO W KOŃCU działa nie ? Omg poczytajcie trochę...strony zacznijcie walidować bo aż szkoda czytać pewne rzeczy.
KCG
Tak jak napisał bmL możesz zrobić, tudzież w moim zmienić tylko:
  1. <?php
  2. $sql = 'SELECT `IDZam`, `NazwaOdbiorcy`, `DataZamowienia`, `StanRealizacji` FROM `ZAMOWI
  3. NIE` WHERE ';
  4. if ($Stan == '*')
  5. $sql .= '`StanRealizacji`='N' OR `StanRealizacji`='Z' OR `StanRealizacji`='O'';
  6. else
  7. $sql .= '`StanRealizacji`=''.$Stan.''';
  8. ?>

Dodałem jeszcze '`' dla przejrzystości (między nimi są nazwy pól lub tabel).
Z tego kodu, co pokazałeś, to wklejasz to pod 13 linijka, a w 14 (która stanie się 15) zmieniasz $result = @mysql_query($sql);
golaod
O i następny mocarz. Pewnie niech wyłączy sobie obsługę błędów bo po co ma wiedzieć, że ma coś zjeb... w zapytaniu no nie ? I jak napisałem już wyżej PO CO OGRANICZAĆ zapytanie. Jeszcze w taki tandetny sposób... Skoro chce wszystkie wyniki TO NIE MA PO PROSTU WARUNKU WHERE.
KCG
On sam sobie dał '@', bo później robi if'a, powiedzmy z obsługą błędów, w to nie wnikam, bo o to nie pyta.
A jeśli ma jakieś inne literki jeszcze? Choć jeśli jest tylko N lub Z lub O, to masz rację winksmiley.jpg
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.