Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][HTML]Jak przekazac * GWIAZDKĘ czyli wszsytko z formularza
palixmp
post
Post #1





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 19.07.2006

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


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:)

Ten post edytował palixmp 26.08.2008, 21:59:31
Go to the top of the page
+Quote Post
webdice
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Nie wiem czy Cię dobrze zrozumiałem.

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


Poza tym jeśli otwierasz jakiś tag, to go musisz zamknąć.
Go to the top of the page
+Quote Post
palixmp
post
Post #3





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 19.07.2006

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


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 (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Ale stronka dzialą. Tylko ze bez odpowiedniego wyniku oczywiście hihi

Ten post edytował palixmp 26.08.2008, 22:14:42
Go to the top of the page
+Quote Post
webdice
post
Post #4


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Jak błąd? Wklej treść błędu i więcej kodu.
Go to the top of the page
+Quote Post
palixmp
post
Post #5





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 19.07.2006

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


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; ?>
Go to the top of the page
+Quote Post
webdice
post
Post #6


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Po pierwsze, co to niby jest?

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


Gdzie są klamry? Po drugie podaj treść błędu.
Go to the top of the page
+Quote Post
palixmp
post
Post #7





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 19.07.2006

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


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 * (IMG:http://forum.php.pl/style_emoticons/default/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 *.

Ten post edytował palixmp 26.08.2008, 22:23:32
Go to the top of the page
+Quote Post
wookieb
post
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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.
Go to the top of the page
+Quote Post
pyro
post
Post #9





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


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





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 19.07.2006

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


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' .

Ten post edytował palixmp 26.08.2008, 22:42:23
Go to the top of the page
+Quote Post
KCG
post
Post #11





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

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


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





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 19.07.2006

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


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





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Przy zapytaniu wybierającym twoje rekordy.
Go to the top of the page
+Quote Post
tomekpl
post
Post #14





Grupa: Zarejestrowani
Postów: 134
Pomógł: 5
Dołączył: 9.08.2008
Skąd: Szczecin

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


Jakmasz polecenie option, to jakos raczej musisz nazwać wszystkie po kolei jakie maja być np:

<option value="konstrukcje">Konstrukcje</option>
Go to the top of the page
+Quote Post
bmL
post
Post #15





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

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


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".
Go to the top of the page
+Quote Post
golaod
post
Post #16





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


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.

Ten post edytował golaod 27.08.2008, 10:14:30
Go to the top of the page
+Quote Post
KCG
post
Post #17





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

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


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);

Ten post edytował KCG 27.08.2008, 10:19:46
Go to the top of the page
+Quote Post
golaod
post
Post #18





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


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.
Go to the top of the page
+Quote Post
KCG
post
Post #19





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

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


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ę (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
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: 23.08.2025 - 08:35