Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Jak sprawdzić czy w zmiennej występuje, między innymi dane wyrażenie?
akurczyk
post
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Kłodzko

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


Stworzyłem formularz:
CODE
<script type="text/javascript">

</script>
<form method="get" onsubmit="return wyslij(this)">
<input type="hidden" name="kategorie" value="" >
<input type="text" name="pytanie" value="<?php echo $_GET['kategorie']; ?>"><br>
<input type="checkbox" name="kategoria[]" value="[PHP]"> [PHP]<br>
<input type="checkbox" name="kategoria[]" value="[JavaScript]"> [JavaScript]<br>
<input type="checkbox" name="kategoria[]" value="[MySQL]"> [MySQL]<br>
<input type="checkbox" name="kategoria[]" value="[SQLite]"> [SQLite]<br>
<input type="checkbox" name="kategoria[]" value="[XHTML/CSS]"> [XHTML/CSS]<br>
<input type="submit" value="Szukaj">
</form>

Jak można zauważyć po kliknięciu Szukaj formularz przeładuje stronę wi wyświetli się ponownie a pole pytanie będzie zawierało tekst taki jak przed wysłaniem. Ale jak zrobić aby checkboxy były pozaznaczane tak samo ja przed wysłaniem (funkcja js sumuje ich wartości do jednej zmiennej GET)? Jak sprawdzić czy w zmiennej występuje między innymi dane wyrażenie (np. [PHP]).
Proszę o pomoc

Ten post edytował akurczyk 3.08.2008, 10:48:15
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
akurczyk
post
Post #2





Grupa: Zarejestrowani
Postów: 201
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Kłodzko

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


zaraz sprawdzę ale nie mogę zmienić kategoria[] na kategoria[0] albo 1 bo nad skryptem jest funkcja js ktura sumije wszystkie kategoia[] do kategorie. a ja chcę sprawdzić czy w kategoria znajduj się między innymi dany ciąg znaków.

działa
Go to the top of the page
+Quote Post
neverever
post
Post #3





Grupa: Zarejestrowani
Postów: 278
Pomógł: 44
Dołączył: 17.02.2004
Skąd: Wieliczka

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


Cytat(akurczyk @ 4.08.2008, 12:47:34 ) *
zaraz sprawdzę ale nie mogę zmienić kategoria[] na kategoria[0] albo 1 bo nad skryptem jest funkcja js ktura sumije wszystkie kategoia[] do kategorie. a ja chcę sprawdzić czy w kategoria znajduj się między innymi dany ciąg znaków.

Nie rozumiesz...
Jak to ma działać jak:
1. masz dwa różne elementy name="kategoria" jeden to input hidden, drugi to checkboxy których wynik tu i tak otrzymujesz w postaci tablicy.
2. we wzorze eregi nawiasy kwadratowe muszą być poprzedzone znakiem \
3. jeszcze zupełnie nie wiadomo po co tu js. mieszasz

Jeżeli już tak chcesz, to zobacz:
  1. <?php
  2. if($_GET['submit']){
  3. $kategoria=$_GET['kategoria'];
  4.  
  5. foreach($kategoria as $k=>$v) $pytanie.=$v;
  6. echo 'Wybrano: '.$pytanie.'<hr>';
  7. }
  8. echo '<form action="" method="get">';
  9. if(eregi('[PHP]', $pytanie)) {
  10. echo '<input type="checkbox" name="kategoria[]" value="[PHP]" checked="checked"> [PHP]<br>';
  11. } else {
  12. echo '<input type="checkbox" name="kategoria[]" value="[PHP]"> [PHP]<br>';
  13. }
  14. if(eregi('[Perl]', $pytanie)) {
  15. echo '<input type="checkbox" name="kategoria[]" value="[Perl]" checked="checked"> [Perl]<br>';
  16. } else {
  17. echo '<input type="checkbox" name="kategoria[]" value="[Perl]"> [Perl]<br>';
  18. }
  19. if(eregi('[MySQL]', $pytanie)) {
  20. echo '<input type="checkbox" name="kategoria[]" value="[MySQL]" checked="checked"> [MySQL]<br>';
  21. } else {
  22. echo '<input type="checkbox" name="kategoria[]" value="[MySQL]"> [MySQL]<br>';
  23. }
  24. if(eregi('[PostgreSQL]', $pytanie)) {
  25. echo '<input type="checkbox" name="kategoria[]" value="[PostgreSQL]" checked="checked"> [PostgreSQL]<br>';
  26. } else {
  27. echo '<input type="checkbox" name="kategoria[]" value="[PostgreSQL]"> [PostgreSQL]<br>';
  28. }
  29. if(eregi('[SQLite]', $pytanie)) {
  30. echo '<input type="checkbox" name="kategoria[]" value="[SQLite]" checked="checked"> [SQLite]<br>';
  31. } else {
  32. echo '<input type="checkbox" name="kategoria[]" value="[SQLite]"> [SQLite]<br>';
  33. }
  34. if(eregi('[JavaScript]', $pytanie)) {
  35. echo '<input type="checkbox" name="kategoria[]" value="[JavaScript]" checked="checked"> [JavaScript]<br>';
  36. } else {
  37. echo '<input type="checkbox" name="kategoria[]" value="[JavaScript]"> [JavaScript]<br>';
  38. }
  39. if(eregi('[XHTML/CSS]', $pytanie)) {
  40. echo '<input type="checkbox" name="kategoria[]" value="[XHTML/CSS]" checked="checked"> [XHTML/CSS]<br>';
  41. } else {
  42. echo '<input type="checkbox" name="kategoria[]" value="[XHTML/CSS]"> [XHTML/CSS]<br>';
  43. }
  44. echo '<input type="submit" name="submit" value="Szukaj">
  45. </form>';
  46. ?>


chociaż bardziej bym zalecał:
  1. <?php
  2.  
  3. if($_GET['submit']){
  4. $kategoria=$_GET['kategoria'];
  5. foreach($kategoria as $k=>$v) $pytanie.="[$k]";
  6. echo 'Wybrano: '.$pytanie.'<hr>';
  7. }
  8.  
  9. echo '<form action="" method="get">';
  10. if(eregi('[PHP]', $pytanie)) {
  11. echo '<input type="checkbox" name="kategoria[PHP]" checked="checked"> [PHP]<br>';
  12. } else {
  13. echo '<input type="checkbox" name="kategoria[PHP]"> [PHP]<br>';
  14. }
  15. if(eregi('[Perl]', $pytanie)) {
  16. echo '<input type="checkbox" name="kategoria[Perl]" checked="checked"> [Perl]<br>';
  17. } else {
  18. echo '<input type="checkbox" name="kategoria[Perl]"> [Perl]<br>';
  19. }
  20. if(eregi('[MySQL]', $pytanie)) {
  21. echo '<input type="checkbox" name="kategoria[MySQL]" checked="checked"> [MySQL]<br>';
  22. } else {
  23. echo '<input type="checkbox" name="kategoria[MySQL]"> [MySQL]<br>';
  24. }
  25. if(eregi('[PostgreSQL]', $pytanie)) {
  26. echo '<input type="checkbox" name="kategoria[PostgreSQL]" checked="checked"> [PostgreSQL]<br>';
  27. } else {
  28. echo '<input type="checkbox" name="kategoria[PostgreSQL]"> [PostgreSQL]<br>';
  29. }
  30. if(eregi('[SQLite]', $pytanie)) {
  31. echo '<input type="checkbox" name="kategoria[SQLite]" checked="checked"> [SQLite]<br>';
  32. } else {
  33. echo '<input type="checkbox" name="kategoria[SQLite]"> [SQLite]<br>';
  34. }
  35. if(eregi('[JavaScript]', $pytanie)) {
  36. echo '<input type="checkbox" name="kategoria[JavaScript]" checked="checked"> [JavaScript]<br>';
  37. } else {
  38. echo '<input type="checkbox" name="kategoria[JavaScript]"> [JavaScript]<br>';
  39. }
  40. if(eregi('[XHTML/CSS]', $pytanie)) {
  41. echo '<input type="checkbox" name="kategoria[XHTML/CSS]" checked="checked"> [XHTML/CSS]<br>';
  42. } else {
  43. echo '<input type="checkbox" name="kategoria[XHTML/CSS]"> [XHTML/CSS]<br>';
  44. }
  45. echo '<input type="submit" name="submit" value="Szukaj">
  46. </form>';
  47. ?>


a nawet tak:
  1. <?php
  2.  
  3. $tab=array('PHP','Perl','MySQL','PostgreSQL','SQLite','JavaScript','XHTML/CSS');
  4.  
  5. if($_GET['submit']){
  6. $kategoria=$_GET['kategoria'];
  7. foreach($kategoria as $k=>$v) { $pytanie.="[$k]"; }
  8. echo 'Wybrano: '.$pytanie.'<hr>'; //tą linie można usunąć
  9. }
  10.  
  11. echo '<form action="" method="get">';
  12. foreach($tab as $k=>$v) {
  13. if(eregi("[$v]", $pytanie)) { echo '<input type="checkbox" name="kategoria['.$v.']" checked="checked"> ['.$v.']<br>'; }
  14. else { echo '<input type="checkbox" name="kategoria['.$v.']"> ['.$v.']<br>'; }
  15. }
  16. echo '<input type="submit" name="submit" value="Szukaj"></form>';
  17. ?>


No i jeszcze jedno, dlaczego by tego nie wysłać POSTem?

Ten post edytował neverever 4.08.2008, 12:51:40
Go to the top of the page
+Quote Post

Posty w temacie


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: 4.10.2025 - 12:31